diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index 56f2a5d58a..76f760af9e 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -190,35 +190,32 @@ esac # Include some helper functions. source "${HOMEBREW_LIBRARY}/Homebrew/utils/helpers.sh" -# Require HOMEBREW_BREW_WRAPPER to be set if HOMEBREW_FORCE_BREW_WRAPPER is set -# (and HOMEBREW_NO_FORCE_BREW_WRAPPER is not set) for all non-trivial commands -# (i.e. not defined above this line e.g. formulae or --cellar). -if [[ -z "${HOMEBREW_NO_FORCE_BREW_WRAPPER:-}" && -n "${HOMEBREW_FORCE_BREW_WRAPPER:-}" ]] +# If HOMEBREW_FORCE_BREW_WRAPPER is set, verify that the path to our parent +# process is the same as the value of HOMEBREW_FORCE_BREW_WRAPPER for all +# non-trivial commands (i.e. not defined above this line e.g. formulae or --cellar). +if [[ -n "${HOMEBREW_FORCE_BREW_WRAPPER:-}" ]] then - HOMEBREW_FORCE_BREW_WRAPPER_WITHOUT_BREW="${HOMEBREW_FORCE_BREW_WRAPPER%/brew}" - if [[ -z "${HOMEBREW_BREW_WRAPPER:-}" ]] + if [[ -n "${HOMEBREW_MACOS:-}" ]] then + source "${HOMEBREW_LIBRARY}/Homebrew/utils/ruby.sh" + setup-ruby-path + HOMEBREW_BREW_CALLER="$("${HOMEBREW_RUBY_PATH}" "${HOMEBREW_LIBRARY}/Homebrew/utils/pid_path.rb" "${PPID}")" + else + HOMEBREW_BREW_CALLER="$(readlink -f "/proc/${PPID}/exe")" + fi + + if [[ "${HOMEBREW_BREW_CALLER:-}" != "${HOMEBREW_FORCE_BREW_WRAPPER}" ]] + then + HOMEBREW_FORCE_BREW_WRAPPER_WITHOUT_BREW="${HOMEBREW_FORCE_BREW_WRAPPER%/brew}" + + # HOMEBREW_ORIGINAL_BREW_FILE set by bin/brew + # shellcheck disable=SC2154 odie <