diff options
author | Luke Shumaker <lukeshu@parabola.nu> | 2018-01-02 23:18:20 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@parabola.nu> | 2018-01-03 14:21:18 -0500 |
commit | b5856cda2a5e1be18d2685eff2c05fe0dba2487f (patch) | |
tree | 2e08fc908cf32bc9b34f1981750a5e10a2c73ce7 /lib | |
parent | ee1309e88370340802ec612080efc24e48bd5063 (diff) | |
download | devtools-b5856cda2a5e1be18d2685eff2c05fe0dba2487f.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.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/common.sh | 4 |
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 |