summaryrefslogtreecommitdiff
path: root/scripts/makepkg.sh.in
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2010-06-23 13:16:36 +1000
committerAllan McRae <allan@archlinux.org>2010-06-23 13:32:21 +1000
commit07a9effdd06345d09f09cdc92e23c937d8fa94b5 (patch)
treeace80ca576e2390dfbe5562491f144b86f10bc05 /scripts/makepkg.sh.in
parent708f186f98a0c2094225aa94ac8a139ac3a9163e (diff)
downloadpacman-07a9effdd06345d09f09cdc92e23c937d8fa94b5.tar.xz
makepkg: prevent error trap activation in bash-3.2
Running "pacman -T foo" is expected to return a non-zero value when "foo" is not installed. This sets of the error trap in bash-3.2 but not bash 4.x. Work around this by disabling the error trap around this pacman call as we are manually checking the return value anyway. Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'scripts/makepkg.sh.in')
-rw-r--r--scripts/makepkg.sh.in10
1 files changed, 7 insertions, 3 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 4f9f89b1..2699f637 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -382,11 +382,15 @@ run_pacman() {
}
check_deps() {
- (( $# > 0 )) || return
+ (( $# > 0 )) || return 0
+ # Disable error trap in pacman subshell call as this breaks bash-3.2 compatibility
+ # Also, a non-zero return value is not unexpected and we are manually dealing them
+ set +E
local ret=0
- pmout=$(run_pacman -T "$@")
- ret=$?
+ pmout=$(run_pacman -T "$@") || ret=$?
+ set -E
+
if (( ret == 127 )); then #unresolved deps
echo "$pmout"
elif (( ret )); then