Use do_on_exit() in build scripts for cleanup
authorReto Buerki <reet@codelabs.ch>
Thu, 6 Dec 2012 18:26:48 +0000 (19:26 +0100)
committerTobias Brunner <tobias@strongswan.org>
Thu, 17 Jan 2013 14:22:11 +0000 (15:22 +0100)
testing/scripts/build-baseimage
testing/scripts/build-umlhostfs
testing/scripts/build-umlrootfs

index 4b81c5c..b8f7092 100755 (executable)
@@ -32,6 +32,9 @@ log_action "Mounting cache to $CACHEDIR"
 mkdir -p $APTCACHE
 execute "mount -o bind $CACHEDIR $APTCACHE"
 
+do_on_exit umount -l $APTCACHE
+do_on_exit umount -l $LOOPDIR
+
 log_action "Running debootstrap ($ROOTFSSUITE, $ROOTFSARCH)"
 execute "debootstrap --arch=$ROOTFSARCH --include=$PACKAGES $ROOTFSSUITE $LOOPDIR $ROOTFSMIRROR"
 
@@ -45,6 +48,3 @@ do
        log_action "Disabling service $service"
        execute_chroot "update-rc.d -f $service remove"
 done
-
-execute "umount -l $APTCACHE" 0
-execute "umount -l $LOOPDIR" 0
index e535598..b4efc0e 100755 (executable)
@@ -36,6 +36,9 @@ else
        HOSTS=$*
 fi
 
+# just to be sure
+do_on_exit umount $LOOPDIR
+
 for host in $HOSTS
 do
        log_action "Creating guest image for $host"
@@ -56,6 +59,6 @@ do
                execute_chroot "chown -R openldap:openldap /var/lib/ldap" 0
        fi
        sync
-       umount $LOOPDIR
        log_status 0
+       umount $LOOPDIR
 done
index 6c67a25..a93adac 100755 (executable)
@@ -41,6 +41,10 @@ mkdir -p $LOOPDIR/root/compile
 log_action "Mounting $ROOTFSCOMPILEDIR as /root/compile"
 execute "mount -o bind $ROOTFSCOMPILEDIR $LOOPDIR/root/compile"
 
+do_on_exit umount $LOOPDIR/root/compile
+do_on_exit umount $LOOPDIR/proc
+do_on_exit umount $LOOPDIR
+
 echo "Installing software from source"
 RECPDIR=$UMLTESTDIR/testing/scripts/recipes
 RECIPES=`ls $RECPDIR/*.mk | xargs -n1 basename`
@@ -52,8 +56,6 @@ do
        execute_chroot "make SWANVERSION=$SWANVERSION -C /root/compile -f $r"
 done
 
-umount $LOOPDIR/root/compile
-
 log_action "Setting up shared build tree at /root/compile"
 echo "" >> $LOOPDIR/etc/fstab
 echo "none /root/compile hostfs $ROOTFSCOMPILEDIR" >> $LOOPDIR/etc/fstab
@@ -61,6 +63,3 @@ log_status 0
 
 log_action "Removing /etc/resolv.conf"
 execute "rm -f $LOOPDIR/etc/resolv.conf"
-
-execute "umount $LOOPDIR/proc" 0
-execute "umount $LOOPDIR" 0