OSDN Git Service

Change in work area of make-base-image
[fulcon/Fulcon.git] / src / lib / release-rootfs
1 #!/bin/bash
2
3 # Copyright (C) 2016 NIWA Hideyuki
4
5 PATH=/usr/lib/fulcon/lib/:$PATH
6
7 # BASE dir
8 CONTAINER_DIR=/var/lib/fulcon/setup
9
10 # check root
11 if [ ${EUID:-$UID} -ne 0 ] ; then
12   echo "error: Because you are not root, you cannot execute this command."
13   exit 1
14 fi
15
16 usage () {
17         echo "usage ; release-rootfs NAME"
18 }
19
20 # check arts
21 if [ $# -ne 1 ]; then
22         usage
23         exit -1
24 fi
25
26 umask 022
27
28 LXCNAME=$1
29
30 rootfs=$CONTAINER_DIR/$LXCNAME/rootfs
31
32 lsdir() {
33   ls -f --ind=none $1 | sed '/^\.\{1,2\}$/d'
34 }
35
36 # release root dir
37
38 # release /usr
39 umount $rootfs/usr >& /dev/null
40 rmdir  $rootfs/usr >& /dev/null
41
42 # release /bin
43 if [ ! -L $rootfs/bin ]; then
44         umount $rootfs/bin >& /dev/null
45         rmdir  $rootfs/bin >& /dev/null
46 else
47         rm -f $rootfs/bin
48 fi
49
50 # release /sbin
51 if [ ! -L $rootfs/sbin ]; then
52         umount $rootfs/sbin >& /dev/null
53         rmdir  $rootfs/sbin >& /dev/null
54 else
55         rm -f $rootfs/sbin
56 fi
57
58 # release /lib64
59 if [ ! -L $rootfs/lib64 ]; then
60         umount $rootfs/lib64 >& /dev/null
61         rmdir  $rootfs/lib64 >& /dev/null
62 else
63         rm -f $rootfs/lib64
64 fi
65
66 # release /var/lib
67 for i in `lsdir /var/lib`; do
68         if [ -d $rootfs/var/lib/$i ] ; then
69                 if [ x"$i" != x"fulcon" -a x"$i" != x"tmp" -a \
70                                 x"$i" != x"docker" -a \
71                                 x"$i" != x"libvirt" -a x"$i" != x"slot-os" ]; then
72                         umount $rootfs/var/lib/$i >& /dev/null
73                         rmdir  $rootfs/var/lib/$i >& /dev/null
74                 else
75                         rmdir  $rootfs/var/lib/$i
76                 fi
77         fi
78 done
79
80 # release /var
81 rm -rf $rootfs/var/log
82 for i in `lsdir /var` ; do
83         if [ -L $rootfs/var/$i ] ; then
84                 rm -f $rootfs/var/$i
85         elif [ -d $rootfs/var/$i ] ; then
86                 if [ x"$i" == x"lib" ]; then
87                         rmdir  $rootfs/var/$i >& /dev/null
88                 else
89                         umount $rootfs/var/$i >& /dev/null
90                         rmdir  $rootfs/var/$i >& /dev/null
91                 fi
92         fi
93 done
94
95 rm -f  $rootfs/run/run
96 rm -rf $rootfs/run
97 rm -rf $rootfs/etc
98 rm -rf $rootfs/home
99 rm -rf $rootfs/lib
100 rm -rf $rootfs/root
101 rm -rf $rootfs/tmp
102 rm -rf $rootfs/.autorelabel
103
104 for i in `lsdir /` ; do
105         if [ -L $rootfs/$i ] ; then
106                 rm -f $rootfs/$i
107         elif [ -d $rootfs/$i ] ; then
108                 rmdir $rootfs/$i
109         fi
110 done
111
112 exit 0