diff options
-rwxr-xr-x | bin/chroot-installation.sh | 18 |
1 files 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." |