bin/brew: remove HOMEBREW_NO_ENV_FILTERING.

It's been deprecated for a long time. Add a disabling message to be
nice (that we'll remove in future).
This commit is contained in:
Mike McQuaid 2022-07-22 14:39:21 +01:00
parent fad20859b1
commit 0f54f342e6
No known key found for this signature in database
GPG Key ID: 3338A31AFDB1D829

View File

@ -18,6 +18,15 @@ then
exit 1 exit 1
fi fi
# Fail fast with concise message when requesting unfiltered environment.
# This is basically odisabled so can be removed at any major release afterwards
# and definitely if this is still here in 2023.
if [ -n "${HOMEBREW_NO_ENV_FILTERING}" ]
then
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
fi
quiet_cd() { quiet_cd() {
cd "$@" &>/dev/null || return cd "$@" &>/dev/null || return
} }
@ -114,32 +123,24 @@ fi
HOMEBREW_PATH="${PATH}" HOMEBREW_PATH="${PATH}"
export HOMEBREW_PATH export HOMEBREW_PATH
# set from user environment # filter the user environment
# shellcheck disable=SC2154 PATH="/usr/bin:/bin:/usr/sbin:/sbin"
if [[ -z "${HOMEBREW_NO_ENV_FILTERING}" ]]
then
PATH="/usr/bin:/bin:/usr/sbin:/sbin"
FILTERED_ENV=() FILTERED_ENV=()
ENV_VAR_NAMES=( ENV_VAR_NAMES=(
HOME SHELL PATH TERM TERMINFO TERMINFO_DIRS COLUMNS DISPLAY LOGNAME USER CI SSH_AUTH_SOCK SUDO_ASKPASS HOME SHELL PATH TERM TERMINFO TERMINFO_DIRS COLUMNS DISPLAY LOGNAME USER CI SSH_AUTH_SOCK SUDO_ASKPASS
http_proxy https_proxy ftp_proxy no_proxy all_proxy HTTPS_PROXY FTP_PROXY ALL_PROXY http_proxy https_proxy ftp_proxy no_proxy all_proxy HTTPS_PROXY FTP_PROXY ALL_PROXY
GITHUB_ACTIONS GITHUB_WORKSPACE GITHUB_ACTIONS_HOMEBREW_SELF_HOSTED GITHUB_ACTIONS GITHUB_WORKSPACE GITHUB_ACTIONS_HOMEBREW_SELF_HOSTED
GITHUB_REPOSITORY GITHUB_RUN_ID GITHUB_RUN_ATTEMPT GITHUB_SHA GITHUB_HEAD_REF GITHUB_BASE_REF GITHUB_REF GITHUB_REPOSITORY GITHUB_RUN_ID GITHUB_RUN_ATTEMPT GITHUB_SHA GITHUB_HEAD_REF GITHUB_BASE_REF GITHUB_REF
) )
# Filter all but the specific variables. # Filter all but the specific variables.
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
unset VAR ENV_VAR_NAMES unset VAR ENV_VAR_NAMES
exec /usr/bin/env -i "${FILTERED_ENV[@]}" /bin/bash "${HOMEBREW_LIBRARY}/Homebrew/brew.sh" "$@" exec /usr/bin/env -i "${FILTERED_ENV[@]}" /bin/bash "${HOMEBREW_LIBRARY}/Homebrew/brew.sh" "$@"
else
echo "Warning: HOMEBREW_NO_ENV_FILTERING is undocumented, deprecated and will be removed in a future Homebrew release (because it breaks many things)!" >&2
source "${HOMEBREW_LIBRARY}/Homebrew/brew.sh"
fi