improve error handling
authorPatrick Schleizer <adrelanos@whonix.org>
Sat, 21 Oct 2023 18:44:02 +0000 (14:44 -0400)
committerPatrick Schleizer <adrelanos@whonix.org>
Mon, 23 Oct 2023 12:04:49 +0000 (08:04 -0400)
Enable `set -e` if environment variables `REPORT_TRAP_ERR`
or `FAIL_TRAP_ERR` are set to `yes`.

related to https://github.com/grml/grml-debootstrap/issues/224

chroot-script
grml-debootstrap

index 5cff484..6655cb3 100755 (executable)
@@ -11,6 +11,7 @@
 
 # error_handler {{{
 if [ "$REPORT_TRAP_ERR" = "yes" ] || [ "$FAIL_TRAP_ERR" = "yes" ]; then
+   set -e
    set -E
    set -o pipefail
    trap "error_handler" ERR
index 72bc703..6ed8511 100755 (executable)
@@ -31,6 +31,7 @@ last bash command: $last_bash_command"
 }
 
 if [ "$REPORT_TRAP_ERR" = "yes" ] || [ "$FAIL_TRAP_ERR" = "yes" ]; then
+   set -e
    set -E
    set -o pipefail
    trap "error_handler" ERR
@@ -2177,7 +2178,8 @@ for i in format_efi_partition prepare_vm mkfs tunefs \
          preparechroot execute_pre_scripts chrootscript execute_post_scripts \
          remove_configs umount_chroot grub_install umount_target fscktool ; do
     if stage "${i}" ; then
-      if "$i" ; then
+      "$i"
+      if [ $? -eq 0 ]; then
         stage "${i}" 'done' && rm -f "${STAGES}/${i}"
       else
         bailout 2 "$i"