aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xtesting/scripts/build-baseimage5
-rwxr-xr-xtesting/scripts/build-umlhostfs1
-rwxr-xr-xtesting/scripts/build-umlrootfs7
-rwxr-xr-xtesting/scripts/function.sh9
4 files changed, 11 insertions, 11 deletions
diff --git a/testing/scripts/build-baseimage b/testing/scripts/build-baseimage
index 81dd6f0a4..a555d2cb6 100755
--- a/testing/scripts/build-baseimage
+++ b/testing/scripts/build-baseimage
@@ -30,6 +30,7 @@ execute "qemu-img create -f qcow2 $ROOTFS ${ROOTFSSIZE}M"
log_action "Connecting image to NBD device $NBDEV"
execute "qemu-nbd -c $NBDEV $ROOTFS"
+do_on_exit qemu-nbd -d $NBDEV
log_action "Partitioning disk"
sfdisk /dev/nbd0 -D -uM >>$LOGFILE 2>&1 << EOF
@@ -49,14 +50,12 @@ execute "mkfs.ext3 $NBDPARTITION"
log_action "Mounting $NBDPARTITION to $LOOPDIR"
execute "mount $NBDPARTITION $LOOPDIR"
+do_on_exit graceful_umount $LOOPDIR
log_action "Using $CACHEDIR as archive for apt"
mkdir -p $APTCACHE
execute "mount -o bind $CACHEDIR $APTCACHE"
-
do_on_exit graceful_umount $APTCACHE
-do_on_exit graceful_umount $LOOPDIR
-do_on_exit qemu-nbd -d $NBDEV
log_action "Running debootstrap ($ROOTFSSUITE, $ROOTFSARCH)"
execute "debootstrap --arch=$ROOTFSARCH --include=$PACKAGES $ROOTFSSUITE $LOOPDIR $ROOTFSMIRROR"
diff --git a/testing/scripts/build-umlhostfs b/testing/scripts/build-umlhostfs
index d3cb2f651..ed026b6e8 100755
--- a/testing/scripts/build-umlhostfs
+++ b/testing/scripts/build-umlhostfs
@@ -40,6 +40,7 @@ else
fi
# just to be sure
+do_on_exit qemu-nbd -d $NBDEV
do_on_exit umount $LOOPDIR
for host in $HOSTS
diff --git a/testing/scripts/build-umlrootfs b/testing/scripts/build-umlrootfs
index 6131c1d1c..f6bcaa78e 100755
--- a/testing/scripts/build-umlrootfs
+++ b/testing/scripts/build-umlrootfs
@@ -37,22 +37,21 @@ execute "cp $ROOTFS $BASE"
log_action "Connecting base image to NBD device $NBDEV"
execute "qemu-nbd -c $NBDEV $BASE"
+do_on_exit qemu-nbd -d $NBDEV
partprobe $NBDEV
log_action "Mounting $NBDPARTITION to $LOOPDIR"
execute "mount $NBDPARTITION $LOOPDIR"
+do_on_exit umount $LOOPDIR
log_action "Mounting proc filesystem to $LOOPDIR/proc"
execute "mount -t proc none $LOOPDIR/proc"
+do_on_exit umount $LOOPDIR/proc
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
-do_on_exit qemu-nbd -d $NBDEV
echo "Installing software from source"
RECPDIR=$TESTDIR/testing/scripts/recipes
diff --git a/testing/scripts/function.sh b/testing/scripts/function.sh
index 2a801a7a5..649e32b65 100755
--- a/testing/scripts/function.sh
+++ b/testing/scripts/function.sh
@@ -97,16 +97,17 @@ declare -a on_exit_items
# perform registered actions on exit
on_exit()
{
- for i in "${on_exit_items[@]}"
+ for ((onex=${#on_exit_items[@]}-1; onex>=0; onex--))
do
- eval $i >>$LOGFILE 2>&1
+ echo "On_Exit: ${on_exit_items[$onex]}" >>$LOGFILE
+ ${on_exit_items[$onex]} >>$LOGFILE 2>&1
done
on_exit_items=""
trap - EXIT
}
# register a command to execute when the calling script terminates. The
-# registered commands are called in FIFO order.
+# registered commands are called in FILO order.
# $* - command to register
do_on_exit()
{
@@ -126,7 +127,7 @@ graceful_umount()
[ ! $secs ] && secs=5
let steps=$secs*100
- for i in `seq 1 $steps`
+ for st in `seq 1 $steps`
do
umount $1 >>$LOGFILE 2>&1
mount | grep $1 >/dev/null 2>&1