~nilium/dotfiles

8d2adb95b3354b196f3fd3a4c81ea5682f317f31 — Noel Cower a month ago 4de6692
Add Brewfile for macOS package use

Really should've added this sooner, but had not gotten around to it.
Not all packages in it are supported on ARM Macs, so not every
environment is the same, but at least the omissions are things that
aren't requirements.
4 files changed, 177 insertions(+), 0 deletions(-)

M Makefile
A brew/.gitignore
A brew/Brewfile
A brew/Makefile
M Makefile => Makefile +1 -0
@@ 28,6 28,7 @@ all::
# its own targets, and sets both the HELP and TARGET variables. These are used
# to construct the `help` target. A target to be installed by `all` should add
# its target to the TARGETS variable.
SUBDIRS += brew
SUBDIRS += dunst
SUBDIRS += git
SUBDIRS += herbstluftwm

A brew/.gitignore => brew/.gitignore +1 -0
@@ 0,0 1,1 @@
Brewfile.lock.json

A brew/Brewfile => brew/Brewfile +160 -0
@@ 0,0 1,160 @@
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/core"
tap "homebrew/services"

# Compilers / languages
brew "chicken"
brew "crystal"
brew "elixir"
brew "erlang"
# brew "gambit-scheme"
brew "llvm"
brew "luajit"
brew "node"
brew "protobuf"
brew "python@3.8"
brew "tcc"
brew "zig"

# Ruby
# All commented out and handled by local rbenv at the moment.
# brew "ruby"
# brew "ruby-build"
# brew "ruby-install"

# Java / JVM
brew "ant"
brew "gradle"
brew "maven"

# Shells
brew "bash"
brew "bash-completion"
brew "zsh"

# Libraries
brew "gdk-pixbuf"
brew "glfw"
brew "libdvdcss"
brew "libheif"
brew "libyaml"
brew "oniguruma"
brew "sdl"
brew "zeromq"
brew "zstd"

# Erlang
brew "rebar3"

# Editors
brew "cscope"
brew "neovim", args: ["HEAD"]

tap "universal-ctags/universal-ctags"
brew "universal-ctags/universal-ctags/universal-ctags", args: ["HEAD"], link: false

tap "railwaycat/emacsmacport"
brew "emacs-mac", args: ["with-modules"]

# Make
brew "autogen"
brew "automake"   # Hell.
brew "bmake"      # The better make.
brew "bsdmake"
brew "make"       # The worse make.
brew "makedepend"
brew "tup"        # Not actually make.

# Version control
brew "fossil"
brew "git"
brew "git-lfs"

# Data tools
brew "fex"
brew "gawk"
brew "gojq"
brew "gron"
brew "jq"
brew "miller"

# Infra tools
brew "ansible"
brew "helm"           # How I wish I didn't need this.
brew "kubernetes-cli"
brew "packer"
brew "terraform"

# GNU

# Tools / etc.
brew "autocode"
brew "binutils"
brew "cfssl"
brew "coreutils"
brew "curl"
brew "dagger"
brew "diffutils"
brew "docutils"
brew "dos2unix"
brew "entr"
brew "exiftool"
brew "faad2"
brew "fd"
brew "ffmpeg"
brew "findutils"
brew "fontconfig"
brew "fzf"
brew "gd"
brew "gdbm"
brew "giflossy"
brew "gnu-indent"
brew "gnu-sed"
brew "gnu-tar"
brew "gnu-which"
brew "gnupg"
brew "graphviz"
brew "grep"
brew "handbrake"
brew "hopenpgp-tools"
brew "htop"
brew "iftop"
brew "imagemagick"
brew "inetutils"
brew "ipcalc"
brew "ldns"
brew "lftp"
brew "man2html"
brew "mandoc"
brew "mosh"
brew "mtr"
brew "ncdu"
brew "netcat"
brew "osxutils"
brew "parallel"
brew "patchutils"
brew "pigz"
brew "pinentry-mac"
brew "pngcrush"
brew "pstree"
brew "pv"
brew "reattach-to-user-namespace"
brew "ripgrep"
brew "rlwrap"
brew "rsync"
brew "runit"
brew "scdoc"
brew "socat"
brew "sops"
brew "tmux"
brew "tokei"
brew "tree"
brew "w3m"
brew "watch"
brew "wget"
brew "wiggle"
brew "wrk"
brew "xctool"
brew "xhyve"
brew "xsv"

A brew/Makefile => brew/Makefile +15 -0
@@ 0,0 1,15 @@
BREW := ${.PARSEDIR:tA}
TARGET := install-brew
HELP := Install brew configuration

.if ${PLATFORM} == darwin
TARGETS += install-brew
.endif

BREW_FILE := ${BREW}/Brewfile
BREW_LOCKFILE := ${BREW}/Brewfile.lock.json

install-brew:: ${BREW_LOCKFILE}

${BREW_LOCKFILE}!
	brew bundle install --file ${BREW_FILE:q}