summaryrefslogtreecommitdiff
path: root/home/.oh-my-zsh/plugins/brew
diff options
context:
space:
mode:
authornavewindre <boneyaard@gmail.com>2025-07-13 06:42:05 +0200
committernavewindre <boneyaard@gmail.com>2025-07-13 06:42:05 +0200
commit02f14a9cb152561a5e44062aac79f3b700403b40 (patch)
tree2db8ebda3b7f6f8777783aeb5c60018e6e1359d8 /home/.oh-my-zsh/plugins/brew
parentcbbdeb2f6b40a102a829f0c47cff052937231f00 (diff)
omz
Diffstat (limited to 'home/.oh-my-zsh/plugins/brew')
-rw-r--r--home/.oh-my-zsh/plugins/brew/README.md62
-rw-r--r--home/.oh-my-zsh/plugins/brew/brew.plugin.zsh79
2 files changed, 141 insertions, 0 deletions
diff --git a/home/.oh-my-zsh/plugins/brew/README.md b/home/.oh-my-zsh/plugins/brew/README.md
new file mode 100644
index 0000000..fccda65
--- /dev/null
+++ b/home/.oh-my-zsh/plugins/brew/README.md
@@ -0,0 +1,62 @@
+# brew plugin
+
+The plugin adds several aliases for common [brew](https://brew.sh) commands.
+
+To use it, add `brew` to the plugins array of your zshrc file:
+
+```zsh
+plugins=(... brew)
+```
+
+## Shellenv
+
+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.
+
+In case you installed `brew` in a non-common location, you can still set `BREW_LOCATION` variable pointing to
+the `brew` binary before sourcing `oh-my-zsh.sh` and it'll set up the environment.
+
+## Aliases
+
+| Alias | Command | Description |
+| -------- | --------------------------------------- | --------------------------------------------------------------------- |
+| `ba` | `brew autoremove` | Uninstall unnecessary formulae. |
+| `bci` | `brew info --cask` | Display information about the given cask. |
+| `bcin` | `brew install --cask` | Install the given cask. |
+| `bcl` | `brew list --cask` | List installed casks. |
+| `bcn` | `brew cleanup` | Run cleanup. |
+| `bco` | `brew outdated --cask` | Report all outdated casks. |
+| `bcrin` | `brew reinstall --cask` | Reinstall the given cask. |
+| `bcubc` | `brew upgrade --cask && brew cleanup` | Upgrade outdated casks, then run cleanup. |
+| `bcubo` | `brew update && brew outdated --cask` | Update Homebrew data, then list outdated casks. |
+| `bcup` | `brew upgrade --cask` | Upgrade all outdated casks. |
+| `bfu` | `brew upgrade --formula` | Upgrade only formulae (not casks). |
+| `bi` | `brew install` | Install a formula. |
+| `bl` | `brew list` | List all installed formulae. |
+| `bo` | `brew outdated` | List installed formulae that have an updated version available. |
+| `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. |
+| `bsl` | `brew services list` | List all running services. |
+| `bsoff` | `brew services stop` | Stop the service and unregister it from launching at login (or boot). |
+| `bsoffa` | `bsoff --all` | Stop all started services. |
+| `bson` | `brew services start` | Start the service and register it to launch at login (or boot). |
+| `bsona` | `bson --all` | Start all stopped services. |
+| `bsr` | `brew services run` | Run the service without registering to launch at login (or boot). |
+| `bsra` | `bsr --all` | Run all stopped services. |
+| `bu` | `brew update` | Update brew and all installed formulae. |
+| `bubo` | `brew update && brew outdated` | Update Homebrew data, then list outdated formulae and casks. |
+| `bubu` | `bubo && bup` | Do the last two operations above. |
+| `bugbc` | `brew upgrade --greedy && brew cleanup` | Upgrade outdated formulae and casks (greedy), then run cleanup. |
+| `bup` | `brew upgrade` | Upgrade outdated, unpinned brews. |
+| `buz` | `brew uninstall --zap` | Remove all files associated with a cask. |
+
+## Completion
+
+This plugin configures paths with Homebrew's completion functions automatically, so you don't need to do it
+manually. See: https://docs.brew.sh/Shell-Completion#configuring-completions-in-zsh.
+
+With the release of Homebrew 1.0, they decided to bundle the zsh completion as part of the brew installation,
+so we no longer ship it with the brew plugin; now it only has brew aliases. If you find that brew completion
+no longer works, make sure you have your Homebrew installation fully up to date.
diff --git a/home/.oh-my-zsh/plugins/brew/brew.plugin.zsh b/home/.oh-my-zsh/plugins/brew/brew.plugin.zsh
new file mode 100644
index 0000000..4dab6f4
--- /dev/null
+++ b/home/.oh-my-zsh/plugins/brew/brew.plugin.zsh
@@ -0,0 +1,79 @@
+if (( ! $+commands[brew] )); then
+ if [[ -n "$BREW_LOCATION" ]]; then
+ if [[ ! -x "$BREW_LOCATION" ]]; then
+ echo "[oh-my-zsh] $BREW_LOCATION is not executable"
+ return
+ fi
+ elif [[ -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
+
+ # 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
+ # Maintain compatibility 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
+
+if [[ -d "$HOMEBREW_PREFIX/share/zsh/site-functions" ]]; then
+ fpath+=("$HOMEBREW_PREFIX/share/zsh/site-functions")
+fi
+
+alias ba='brew autoremove'
+alias bci='brew info --cask'
+alias bcin='brew install --cask'
+alias bcl='brew list --cask'
+alias bcn='brew cleanup'
+alias bco='brew outdated --cask'
+alias bcrin='brew reinstall --cask'
+alias bcubc='brew upgrade --cask && brew cleanup'
+alias bcubo='brew update && brew outdated --cask'
+alias bcup='brew upgrade --cask'
+alias bfu='brew upgrade --formula'
+alias bi='brew install'
+alias bl='brew list'
+alias bo='brew outdated'
+alias brewp='brew pin'
+alias brewsp='brew list --pinned'
+alias bsl='brew services list'
+alias bsoff='brew services stop'
+alias bsoffa='bsoff --all'
+alias bson='brew services start'
+alias bsona='bson --all'
+alias bsr='brew services run'
+alias bsra='bsr --all'
+alias bu='brew update'
+alias bubo='brew update && brew outdated'
+alias bubu='bubo && bup'
+alias bubug='bubo && bugbc'
+alias bugbc='brew upgrade --greedy && brew cleanup'
+alias bup='brew upgrade'
+alias buz='brew uninstall --zap'
+
+function brews() {
+ local formulae="$(brew leaves | xargs brew deps --installed --for-each)"
+ local casks="$(brew list --cask 2>/dev/null)"
+
+ local blue="$(tput setaf 4)"
+ local bold="$(tput bold)"
+ local off="$(tput sgr0)"
+
+ echo "${blue}==>${off} ${bold}Formulae${off}"
+ echo "${formulae}" | sed "s/^\(.*\):\(.*\)$/\1${blue}\2${off}/"
+ echo "\n${blue}==>${off} ${bold}Casks${off}\n${casks}"
+}