I was about to make a joke on Twitter the other day, saying how I move to a new Mac is basically about this command:
brew install yarn nvm cowsay fortune tree direnv gh git-lfs imagemagick jq qpdf webp
Because most of the tools I often use (besides VS Code) are living in the terminal installed by brew
That's when I was discovering that brew actually has a subcommand called bundle. 🤯🤯🤯
Basically, it generates a "Brewfile" for you (like your beloved package.json files in node projects), writing out a list of packages (called formulaes here) that you have installed.
All in all, it's a brilliant way to move all your devtools quickly from one Mac to another.
1️⃣ Generate a Brewfile (acting as your lockfile) with
brew bundle dump
This file is totally human-readable, so when you
cat it, you should see something like:
tap "homebrew/bundle" tap "homebrew/cask" tap "homebrew/cask-fonts" tap "homebrew/core" brew "cowsay" brew "direnv" brew "fortune" brew "imagemagick" brew "jq" brew "neovim" brew "nvm" brew "qpdf" brew "ripgrep" brew "tree" brew "yarn" cask "firefox" cask "font-hack-nerd-font" cask "iterm2" cask "signal"
2️⃣ Carry this Brewfile to your other machine, and just type
brew bundle install
It will install all the dependencies listed in your Brewfile.
That's it! 💪