summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@parabola.nu>2018-01-15 17:57:00 +0100
committerBartłomiej Piotrowski <bpiotrowski@archlinux.org>2018-01-21 14:16:10 +0100
commitaee72cae3231811058d6993d71f97e449e477d8f (patch)
tree2e08fc908cf32bc9b34f1981750a5e10a2c73ce7
parent5ab8f8430a2c865656cd800c03ac21cb17a86d3c (diff)
downloaddevtools-aee72cae3231811058d6993d71f97e449e477d8f.tar.gz
devtools-aee72cae3231811058d6993d71f97e449e477d8f.tar.xz
lib/common.sh: Adjust to work properly with `set -u`
Support for working with `set -u` was broken by 94160d6. Egg on my face; I'm the one who wants `set -u` support, and I'm the author of that commit! libmakepkg does not work with `set -u`; but mostly because of the include guards! So we just need to temporarily disable `set -u` (nounset) while loading libmakepkg. Instead of introducing a new variable, just store the initial nounset status in _INCLUDE_COMMON_SH; rather than a useless fixed-string "true". While we're at it, disable POSIX-mode (just in case we're running as "sh" instead of "bash"), since libmakepkg uses bash-isms that won't parse in POSIX mode.
-rw-r--r--lib/common.sh4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/common.sh b/lib/common.sh
index a3c2ec2..821f8df 100644
--- a/lib/common.sh
+++ b/lib/common.sh
@@ -4,10 +4,12 @@
# License: Unspecified
[[ -z ${_INCLUDE_COMMON_SH:-} ]] || return 0
-_INCLUDE_COMMON_SH=true
+_INCLUDE_COMMON_SH="$(set +o|grep nounset)"
+set +u +o posix
# shellcheck disable=1091
. /usr/share/makepkg/util.sh
+$_INCLUDE_COMMON_SH
# Avoid any encoding problems
export LANG=C