From d71dbf8ee17fa8def38ed027fe8cd851fee701f1 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 19 Feb 2017 03:06:16 -0500 Subject: libremakepkg: correctly exit if a hook fails --- src/chroot-tools/libremakepkg | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/chroot-tools/libremakepkg') diff --git a/src/chroot-tools/libremakepkg b/src/chroot-tools/libremakepkg index a226e38..7f0acfd 100755 --- a/src/chroot-tools/libremakepkg +++ b/src/chroot-tools/libremakepkg @@ -5,7 +5,7 @@ set -euE # Copyright (C) 2010-2012 Nicolás Reynolds # Copyright (C) 2010-2012 Joshua Ismael Haase Hernández (xihh) # Copyright (C) 2012 Michał Masłowski -# Copyright (C) 2012-2015 Luke Shumaker +# Copyright (C) 2012-2015, 2017 Luke Shumaker # # License: GNU GPLv2+ # @@ -69,14 +69,15 @@ exit_copy() { } # Usage; run_hook $hookname $args... -run_hook() { +run_hook() ( local hookname=$1; shift local hookvar="hook_${hookname}[@]" local fails=() + set -o pipefail for hook in "${!hookvar}"; do - "$hook" "$@" || fails+=("$hook") - done |& indent + { "$hook" "$@" |& indent; } || fails+=("$hook") + done if [[ ${#fails[@]} -gt 0 ]]; then error "Failure(s) in %s: %s" "$hookname" "${fails[*]}" @@ -84,7 +85,7 @@ run_hook() { else return 0 fi -} +) # Usage: add_to_local_repo $copydir $pkgfiles... add_to_local_repo() { -- cgit v1.2.2