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}