From 44bc9f54734d9280c71959e56189044141bc1640 Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Sat, 1 Aug 2009 22:15:34 +0200 Subject: make run background/controlled exitcodes more robust & bugfree --- src/core/libs/lib-misc.sh | 7 +++---- src/core/libs/lib-software.sh | 10 ++++------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/core/libs/lib-misc.sh b/src/core/libs/lib-misc.sh index e96e4d2..eec5a2e 100644 --- a/src/core/libs/lib-misc.sh +++ b/src/core/libs/lib-misc.sh @@ -20,11 +20,11 @@ run_controlled () run_background $1 "$2" $3 follow_progress " $4 " $3 $BACKGROUND_PID # dia mode ignores the pid. cli uses it to know how long it must do tail -f wait_for $1 $FOLLOW_PID + CONTROLLED_EXIT=$BACKGROUND_EXIT else notify "$4" - var_exit=${1}_exitcode eval "$2" >>$3 2>&1 - read $var_exit <<< $? + CONTROLLED_EXIT=$? fi } @@ -47,9 +47,8 @@ run_background () debug 'MISC' "run_background starting $1: $2 >>$3 2>&1" [ -f $3 ] && echo -e "\n\n\n" >>$3 echo "STARTING $1 . Executing $2 >>$3 2>&1\n" >> $3; - var_exit=${1}_exitcode eval "$2" >>$3 2>&1 - read $var_exit <<< $? + $BACKGROUND_EXIT=$? debug 'MISC' "run_background done with $1: exitcode (\$$1_exitcode): ${!var_exit} .Logfile $3" echo >> $3 rm -f $RUNTIME_DIR/aif-$1-running diff --git a/src/core/libs/lib-software.sh b/src/core/libs/lib-software.sh index 6b0527f..93a3c15 100644 --- a/src/core/libs/lib-software.sh +++ b/src/core/libs/lib-software.sh @@ -14,9 +14,8 @@ run_mkinitcpio() target_special_fs off # alert the user to fatal errors - # TODO: on the next line, bash gives '[: -ne: unary operator expected'. seen on 2009-07-21 - [ $mkinitcpio_exitcode -ne 0 ] && show_warning "MKINITCPIO FAILED - SYSTEM MAY NOT BOOT" "$TMP_MKINITCPIO_LOG" text - return $mkinitcpio_exitcode + [ $CONTROLLED_EXIT -ne 0 ] && show_warning "MKINITCPIO FAILED - SYSTEM MAY NOT BOOT" "$TMP_MKINITCPIO_LOG" text + return $CONTROLLED_EXIT } @@ -49,8 +48,7 @@ installpkg() { run_controlled pacman_installpkg "$PACMAN_TARGET --noconfirm -S $ALL_PACKAGES" $TMP_PACMAN_LOG "Installing... Please Wait" local _result='' - # TODO: on the next line, bash gives '[: -ne: unary operator expected'. seen on 2009-07-21 - if [ ${pacman_installpkg_exitcode} -ne 0 ]; then + if [ $CONTROLLED_EXIT -ne 0 ]; then _result="Installation Failed (see errors below)" echo -e "\nPackage Installation FAILED." >>$TMP_PACMAN_LOG else @@ -63,7 +61,7 @@ installpkg() { target_special_fs off sync - return ${pacman_installpkg_exitcode} + return $CONTROLLED_EXIT } -- cgit v1.2.3-54-g00ecf