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.
This commit is contained in:
Luke Shumaker 2018-01-15 17:57:00 +01:00 committed by Bartłomiej Piotrowski
parent 5ab8f8430a
commit aee72cae32
1 changed files with 3 additions and 1 deletions

View File

@ -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