From fa3719eaebbce47ea632691209abad5315f0e878 Mon Sep 17 00:00:00 2001 From: Johannes 'josch' Schauer Date: Thu, 27 Dec 2018 14:14:01 +0100 Subject: [PATCH] run_qemu.sh: use an exit trap for reporting the result and cleanup This will prevent any leftover files in case of a sudden error or ctrl+c. --- run_qemu.sh | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/run_qemu.sh b/run_qemu.sh index a198802..3c9f5c7 100755 --- a/run_qemu.sh +++ b/run_qemu.sh @@ -5,6 +5,24 @@ set -eu cachedir="./shared/cache" tmpdir="$(mktemp -d)" +cleanup() { + rv=$? + rm -f "$tmpdir/debian-unstable-overlay.qcow" + [ -e "$tmpdir" ] && rmdir "$tmpdir" + if [ -e shared/result.txt ]; then + head --lines=-1 shared/result.txt + res="$(tail --lines=1 shared/result.txt)" + rm shared/result.txt + if [ "$res" -ne 0 ]; then + # this might possibly overwrite another non-zero rv + rv=1 + fi + fi + exit $rv +} + +trap cleanup INT TERM EXIT + # the path to debian-unstable.qcow must be absolute or otherwise qemu will # look for the path relative to debian-unstable-overlay.qcow qemu-img create -f qcow2 -b "$(realpath $cachedir)/debian-unstable.qcow" "$tmpdir/debian-unstable-overlay.qcow" @@ -18,10 +36,3 @@ qemu-system-x86_64 $KVM -m 512M -nographic \ -serial unix:/tmp/ttyS1,server,nowait \ -virtfs local,id=mmdebstrap,path="$(pwd)/shared",security_model=none,mount_tag=mmdebstrap \ -drive file="$tmpdir/debian-unstable-overlay.qcow",cache=unsafe,index=0 -head --lines=-1 shared/result.txt -if [ "$(tail --lines=1 shared/result.txt)" -ne 0 ]; then - echo "test.sh failed" - exit 1 -fi -rm "$tmpdir/debian-unstable-overlay.qcow" shared/result.txt -rmdir "$tmpdir"