Homebrew
Homebrew is an awesome package manager available for both macOS and Linux, although my personal experience is mainly with macOS.
To list installed packages, can be done with:
brew list
So how would you automate a process of saving this list of installed packages? To share or simply to backup for later use?
This can be done using bundle dump
brew bundle dump --file=/path/to/Brewfile
The dumped file contains taps, brews, casks, mas’s (Mac App Store command-line) and vscode extension (if applicable).
To install all of the contents inside a Brewfile:
brew bundle install --file=/path/to/Brewfile
Create and Update Brewfile Automatically in ZShell
To create and update a Brewfile automatically in ZShell (the default shell in macOS), I’ve created the following zsh function (can be placed inside ~/.zshrc
)
function brew() {
/opt/homebrew/bin/brew "$@"
if [[ "$1" == "install" || "$1" == "remove" || "$1" == "uninstall" ]]; then
/opt/homebrew/bin/brew bundle dump --force --file=~/.Brewfile
fi
}
The above function will maintain a .Brewfile in your homedir (hence the ~
). During install, remove and uninstall.
Keep on brewin’