Files
absolute-dotfiles/Brewfile
T
David Ibia d1aeda397a feat(setup): rewrite setup-mac.sh around Brewfiles with idempotent steps
The old script stopped on a syntax error (unclosed if blocks) and had
drifted from the machine: it installed Anaconda, AeroSpace and Oh My
Posh, and linked nothing.

- Eight named steps (xcode homebrew brew links shell runtimes ai apps)
  that check what is in place first, run on their own by name, and
  preview with --dry-run; a failed step is reported while the rest run
- Brewfile holds the CLI tools, fonts and terminals, Brewfile.apps the
  GUI casks and App Store apps; installs never upgrade existing packages
  and skip apps already installed outside Homebrew
- links symlinks the configs and .local/bin scripts, backing up what it
  replaces, and fetches the nvim submodule only on a fresh clone
- Guard .zshrc's ~/.deno/env source for machines without it
- Document the steps in the README
2026-10-06 23:02:43 +01:00

173 lines
3.1 KiB
Ruby

# Command-line tools, fonts and terminals. Installed by `./setup-mac.sh brew`.
# GUI apps and App Store apps live in Brewfile.apps.
# To see what is installed but missing here: brew bundle dump --file=- | diff Brewfile -
tap "bufbuild/buf"
tap "gu1llaum-3/sshm"
tap "hashicorp/tap"
tap "leoafarias/fvm"
tap "mongodb/brew"
tap "oven-sh/bun"
tap "pbkit/tap"
tap "reoclo/tap"
tap "teamookla/speedtest"
# Shell, prompt and terminal tools (.zshrc and .tmux.conf rely on these)
brew "zsh-syntax-highlighting"
brew "starship"
brew "zoxide"
brew "direnv"
brew "fzf"
brew "eza"
brew "bat"
brew "grc"
brew "tmux"
brew "zellij"
brew "yazi"
brew "mosh"
brew "openssh"
brew "gu1llaum-3/sshm/sshm", trusted: true
# Everyday CLI
brew "coreutils"
brew "curl"
brew "wget"
brew "jq"
brew "ripgrep"
brew "fd"
brew "tree"
brew "watch"
brew "htop"
brew "dust"
brew "telnet"
brew "stow"
brew "sevenzip"
brew "gnupg"
brew "mas" # App Store installs in Brewfile.apps
# Git
brew "gh"
brew "tea"
brew "lazygit"
brew "git-filter-repo"
brew "gitleaks"
brew "colordiff"
brew "diffstat"
# Editors and code tools
brew "neovim"
brew "luarocks"
brew "ast-grep"
brew "silicon"
brew "just"
brew "bufbuild/buf/buf", trusted: true
brew "pbkit/tap/pbkit", trusted: true
# Languages and version managers
brew "asdf"
brew "pyenv"
brew "pyenv-virtualenv"
brew "python@3.11"
brew "python@3.12"
brew "ruby", link: false
brew "go"
brew "deno"
brew "oven-sh/bun/bun", trusted: true
brew "pnpm"
brew "uv"
brew "leoafarias/fvm/fvm", trusted: true
# Python tooling
brew "black"
brew "ruff"
brew "mypy"
brew "ipython"
brew "python-lsp-server"
brew "cookiecutter"
# Build toolchain and native libraries
brew "cmake"
brew "gcc"
brew "lld"
brew "libffi"
brew "libraw"
brew "librist"
brew "libssh"
brew "grpc"
brew "portaudio"
brew "tcl-tk"
brew "cryptography"
brew "python-setuptools"
# Containers, CI, cloud and deploy
brew "lazydocker"
brew "dive"
brew "hadolint"
brew "trivy"
brew "nixpacks"
brew "act"
brew "actionlint"
brew "woodpecker-cli"
brew "awscli"
brew "doctl"
brew "cloudflared"
brew "vercel"
brew "pscale"
brew "hashicorp/tap/terraform", trusted: true
brew "bitwarden-cli"
brew "reoclo/tap/reoclo", trusted: true
# Databases, servers and API clients
brew "mongosh"
brew "mongodb/brew/mongodb-community", trusted: true
brew "mysql"
brew "mysql-client@8.4"
brew "redis"
brew "httpd"
brew "posting"
# Media, documents and images
brew "ffmpeg"
brew "mpv"
brew "imagemagick"
brew "graphicsmagick"
brew "tesseract"
brew "ghostscript"
brew "poppler"
brew "weasyprint"
brew "pngquant"
brew "potrace"
brew "chafa"
brew "folderify"
# Apple and mobile builds
brew "xcodegen"
brew "xcbeautify"
brew "create-dmg"
# Hardware, installers and disk images
brew "arduino-cli"
brew "makensis"
brew "wimlib"
brew "cabextract"
brew "cdrtools"
# Networking
brew "tor"
brew "teamookla/speedtest/speedtest", trusted: true
# Fonts, terminals and CLI apps
cask "font-fira-code-nerd-font"
cask "font-hack-nerd-font"
cask "font-symbols-only-nerd-font"
cask "ghostty"
cask "wezterm"
cask "1password-cli"
cask "git-credential-manager"
cask "ngrok"
# Go and uv tools
go "golang.org/x/tools/gopls"
uv "headroom-ai"
uv "vectorcode"