fix(brew): do not source `brew shellenv` if already on path (#11167)

This commit is contained in:
tmoschou 2022-10-15 04:57:42 +10:30 committed by GitHub
parent 34cd8fbd4a
commit c7c0a8917b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 8 deletions

View File

@ -10,7 +10,10 @@ plugins=(... brew)
## Shellenv
This plugin also executes `brew shellenv` at plugin load to set up many useful variables, such as `HOMEBREW_PREFIX` or `HOMEBREW_REPOSITORY`.
If `brew` is not found in the PATH, this plugin will attempt to find it in common
locations, and execute `brew shellenv` to set the environment appropriately.
This plugin will also export `HOMEBREW_PREFIX="$(brew --prefix)"` if not previously
defined for convenience.
## Aliases

View File

@ -10,18 +10,21 @@ if (( ! $+commands[brew] )); then
else
return
fi
# Only add Homebrew installation to PATH, MANPATH, and INFOPATH if brew is
# not already on the path, to prevent duplicate entries. This aligns with
# the behavior of the brew installer.sh post-install steps.
eval "$("$BREW_LOCATION" shellenv)"
unset BREW_LOCATION
fi
if [[ -z "$HOMEBREW_PREFIX" ]]; then
if [[ -z $BREW_LOCATION ]]; then
eval "$(brew shellenv)"
else
eval "$("$BREW_LOCATION" shellenv)"
fi
# Maintain compatability with potential custom user profiles, where we had
# previously relied on always sourcing shellenv. OMZ plugins should not rely
# on this to be defined due to out of order processing.
export HOMEBREW_PREFIX="$(brew --prefix)"
fi
unset BREW_LOCATION
alias bcubc='brew upgrade --cask && brew cleanup'
alias bcubo='brew update && brew outdated --cask'
alias brewp='brew pin'