From 241a08af4dc322a58bbfda8f2cf948e40d870cd6 Mon Sep 17 00:00:00 2001 From: Holger Levsen Date: Fri, 6 Feb 2015 11:26:06 +0100 Subject: chroot-installation: use 'set -o pipefail' to really catch all the failures, thanks wRAR for the hint --- bin/chroot-installation.sh | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/bin/chroot-installation.sh b/bin/chroot-installation.sh index ba0d9e28..8358005f 100755 --- a/bin/chroot-installation.sh +++ b/bin/chroot-installation.sh @@ -50,13 +50,17 @@ cleanup_all() { execute_ctmpfile() { chmod +x $CTMPFILE - sudo chroot $CHROOT_TARGET $TMPFILE 2>&1 | tee $TMPLOG - RESULT=$(egrep "Failed to fetch.*Unable to connect to" $TMPLOG || true) - if [ ! -z "$RESULT" ] ; then - echo - echo "Trying to workaround temporarily failure fetching packages, trying again..." - echo - sudo chroot $CHROOT_TARGET $TMPFILE + set -o pipefail # see eg http://petereisentraut.blogspot.com/2010/11/pipefail.html + if ! $(sudo chroot $CHROOT_TARGET $TMPFILE 2>&1 | tee $TMPLOG) ; then + RESULT=$(egrep "Failed to fetch.*Unable to connect to" $TMPLOG || true) + if [ ! -z "$RESULT" ] ; then + echo + echo "Trying to workaround temporarily failure fetching packages, trying again..." + echo + sudo chroot $CHROOT_TARGET $TMPFILE + else + exit 1 + fi fi rm $CTMPFILE echo "Debug: This should only be printed on success." -- cgit v1.2.3-70-g09d2