summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorCarlo Sala <carlosalag@protonmail.com>2022-07-12 18:40:39 +0200
committerGitHub <noreply@github.com>2022-07-12 18:40:39 +0200
commitd2dc3bd2da531754778d1e9d7fb082715fc532f1 (patch)
tree98cd93af614c9531b32da6f587130591e3326926 /plugins
parent4c82a2eedf0c43d47601ffa8b0303ed1326fab8f (diff)
downloadzsh-d2dc3bd2da531754778d1e9d7fb082715fc532f1.tar.gz
zsh-d2dc3bd2da531754778d1e9d7fb082715fc532f1.tar.bz2
zsh-d2dc3bd2da531754778d1e9d7fb082715fc532f1.zip
feat(brew): run `brew shellenv` command at plugin load (#10874)
Diffstat (limited to 'plugins')
-rw-r--r--plugins/brew/README.md12
-rw-r--r--plugins/brew/brew.plugin.zsh30
2 files changed, 35 insertions, 7 deletions
diff --git a/plugins/brew/README.md b/plugins/brew/README.md
index bf952bf01..64e0e1153 100644
--- a/plugins/brew/README.md
+++ b/plugins/brew/README.md
@@ -8,19 +8,23 @@ To use it, add `brew` to the plugins array of your zshrc file:
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`.
+
## Aliases
| Alias | Command | Description |
-|----------|---------------------------------------|---------------------------------------------------------------------|
+| -------- | ------------------------------------- | ------------------------------------------------------------------- |
+| `bcubc` | `brew upgrade --cask && brew cleanup` | Update outdated casks, then run cleanup. |
+| `bcubo` | `brew update && brew outdated --cask` | Update Homebrew data, then list outdated casks. |
| `brewp` | `brew pin` | Pin a specified formula so that it's not upgraded. |
| `brews` | `brew list -1` | List installed formulae or the installed files for a given formula. |
| `brewsp` | `brew list --pinned` | List pinned formulae, or show the version of a given formula. |
-| `bubo` | `brew update && brew outdated` | Update Homebrew data, then list outdated formulae and casks. |
| `bubc` | `brew upgrade && brew cleanup` | Upgrade outdated formulae and casks, then run cleanup. |
+| `bubo` | `brew update && brew outdated` | Update Homebrew data, then list outdated formulae and casks. |
| `bubu` | `bubo && bubc` | Do the last two operations above. |
| `buf` | `brew upgrade --formula` | Upgrade only formulas (not casks). |
-| `bcubo` | `brew update && brew outdated --cask` | Update Homebrew data, then list outdated casks. |
-| `bcubc` | `brew upgrade --cask && brew cleanup` | Update outdated casks, then run cleanup. |
## Completion
diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh
index 070a083d0..4a2322216 100644
--- a/plugins/brew/brew.plugin.zsh
+++ b/plugins/brew/brew.plugin.zsh
@@ -1,11 +1,35 @@
+if (( ! $+commands[brew] )); then
+ if [[ -x /opt/homebrew/bin/brew ]]; then
+ BREW_LOCATION="/opt/homebrew/bin/brew"
+ elif [[ -x /usr/local/bin/brew ]]; then
+ BREW_LOCATION="/usr/local/bin/brew"
+ elif [[ -x /home/linuxbrew/.linuxbrew/bin/brew ]]; then
+ BREW_LOCATION="/home/linuxbrew/.linuxbrew/bin/brew"
+ elif [[ -x "$HOME/.linuxbrew/bin/brew" ]]; then
+ BREW_LOCATION="$HOME/.linuxbrew/bin/brew"
+ else
+ return
+ fi
+fi
+
+if [[ -z "$HOMEBREW_PREFIX" ]]; then
+ if [[ -z $BREW_LOCATION ]]; then
+ eval "$(brew shellenv)"
+ else
+ eval "$("$BREW_LOCATION" shellenv)"
+ fi
+fi
+
+unset BREW_LOCATION
+
+alias bcubc='brew upgrade --cask && brew cleanup'
+alias bcubo='brew update && brew outdated --cask'
alias brewp='brew pin'
alias brewsp='brew list --pinned'
-alias bubo='brew update && brew outdated'
alias bubc='brew upgrade && brew cleanup'
+alias bubo='brew update && brew outdated'
alias bubu='bubo && bubc'
alias buf='brew upgrade --formula'
-alias bcubo='brew update && brew outdated --cask'
-alias bcubc='brew upgrade --cask && brew cleanup'
function brews() {
local formulae="$(brew leaves | xargs brew deps --installed --for-each)"