Merge pull request #14181 from kaihowl/fix/nounset

fix: allow running bin/brew with SHELLOPTS=nounset
This commit is contained in:
Mike McQuaid 2022-11-29 11:14:44 +00:00 committed by GitHub
commit 4c95e0dc3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,4 +1,5 @@
#!/bin/bash #!/bin/bash
set -u
# Fail fast with concise message when not using bash # Fail fast with concise message when not using bash
# Single brackets is needed here for POSIX compatibility # Single brackets is needed here for POSIX compatibility
@ -21,7 +22,7 @@ fi
# Fail fast with concise message when requesting unfiltered environment. # Fail fast with concise message when requesting unfiltered environment.
# This is basically odisabled so can be removed at any major release afterwards # This is basically odisabled so can be removed at any major release afterwards
# and definitely if this is still here in 2023. # and definitely if this is still here in 2023.
if [ -n "${HOMEBREW_NO_ENV_FILTERING}" ] if [[ -n "${HOMEBREW_NO_ENV_FILTERING:-}" ]]
then then
echo "Error: HOMEBREW_NO_ENV_FILTERING was deprecated for over a year and has now been removed (because it breaks many things)!" >&2 echo "Error: HOMEBREW_NO_ENV_FILTERING was deprecated for over a year and has now been removed (because it breaks many things)!" >&2
exit 1 exit 1
@ -87,11 +88,11 @@ HOMEBREW_LIBRARY="${HOMEBREW_REPOSITORY}/Library"
for VAR in BAT_THEME BROWSER DISPLAY EDITOR NO_COLOR TMUX DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR CODESPACES for VAR in BAT_THEME BROWSER DISPLAY EDITOR NO_COLOR TMUX DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR CODESPACES
do do
# Skip if variable value is empty. # Skip if variable value is empty.
[[ -z "${!VAR}" ]] && continue [[ -z "${!VAR:-}" ]] && continue
VAR_NEW="HOMEBREW_${VAR}" VAR_NEW="HOMEBREW_${VAR}"
# Skip if existing HOMEBREW_* variable is set. # Skip if existing HOMEBREW_* variable is set.
[[ -n "${!VAR_NEW}" ]] && continue [[ -n "${!VAR_NEW:-}" ]] && continue
export "${VAR_NEW}"="${!VAR}" export "${VAR_NEW}"="${!VAR}"
done done
unset VAR VAR_NEW unset VAR VAR_NEW
@ -104,7 +105,7 @@ export HOMEBREW_LIBRARY
# set from user environment # set from user environment
# shellcheck disable=SC2154 # shellcheck disable=SC2154
# Use VISUAL if HOMEBREW_EDITOR and EDITOR are unset. # Use VISUAL if HOMEBREW_EDITOR and EDITOR are unset.
if [[ -z "${HOMEBREW_EDITOR}" && -n "${VISUAL}" ]] if [[ -z "${HOMEBREW_EDITOR:-}" && -n "${VISUAL:-}" ]]
then then
export HOMEBREW_EDITOR="${VISUAL}" export HOMEBREW_EDITOR="${VISUAL}"
fi fi
@ -113,7 +114,7 @@ fi
# shellcheck disable=SC2154 # shellcheck disable=SC2154
# Set CI variable for Azure Pipelines and Jenkins # Set CI variable for Azure Pipelines and Jenkins
# (Set by default on GitHub Actions, Circle and Travis CI) # (Set by default on GitHub Actions, Circle and Travis CI)
if [[ -z "${CI}" ]] && [[ -n "${TF_BUILD}" || -n "${JENKINS_HOME}" ]] if [[ -z "${CI:-}" ]] && [[ -n "${TF_BUILD:-}" || -n "${JENKINS_HOME:-}" ]]
then then
export CI="1" export CI="1"
fi fi
@ -137,7 +138,7 @@ ENV_VAR_NAMES=(
for VAR in "${ENV_VAR_NAMES[@]}" "${!HOMEBREW_@}" for VAR in "${ENV_VAR_NAMES[@]}" "${!HOMEBREW_@}"
do do
# Skip if variable value is empty. # Skip if variable value is empty.
[[ -z "${!VAR}" ]] && continue [[ -z "${!VAR:-}" ]] && continue
FILTERED_ENV+=("${VAR}=${!VAR}") FILTERED_ENV+=("${VAR}=${!VAR}")
done done