diff options
| author | tmoschou <5567550+tmoschou@users.noreply.github.com> | 2022-10-15 04:57:42 +1030 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-14 20:27:42 +0200 | 
| commit | c7c0a8917b8ded7511c07105c82bd7417b92f7a3 (patch) | |
| tree | ff24bea485b94bc70a82082295468979147e40bf /plugins/brew | |
| parent | 34cd8fbd4afce7b2beb3292f4f90ca57142f442c (diff) | |
| download | zsh-c7c0a8917b8ded7511c07105c82bd7417b92f7a3.tar.gz zsh-c7c0a8917b8ded7511c07105c82bd7417b92f7a3.tar.bz2 zsh-c7c0a8917b8ded7511c07105c82bd7417b92f7a3.zip | |
fix(brew): do not source `brew shellenv` if already on path (#11167)
Diffstat (limited to 'plugins/brew')
| -rw-r--r-- | plugins/brew/README.md | 5 | ||||
| -rw-r--r-- | plugins/brew/brew.plugin.zsh | 17 | 
2 files changed, 14 insertions, 8 deletions
| diff --git a/plugins/brew/README.md b/plugins/brew/README.md index 64e0e1153..9ce2c5bb0 100644 --- a/plugins/brew/README.md +++ b/plugins/brew/README.md @@ -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 diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index 4a2322216..41420b5b7 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -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' | 
