macOS
Use brew bundle
to manage your brews and casks
Homebrew's brew bundle
subcommand allows you to
specify a list of brews and casks to be installed. You can integrate this with
chezmoi by creating a run_once_
script. For example, create a file in your
source directory called run_once_before_install-packages-darwin.sh.tmpl
containing:
{{- if eq .chezmoi.os "darwin" -}}
#!/bin/bash
brew bundle --no-lock --file=/dev/stdin <<EOF
brew "git"
cask "google-chrome"
EOF
{{ end -}}
Note
The Brewfile
is embedded directly in the script with a bash here
document. chezmoi will run this script whenever its contents change, i.e.
when you add or remove brews or casks.
Determine the hostname
The result of the hostname
command on macOS depends on the network that the
machine is connected to. For a stable result, use the scutil
command:
{{ $computerName := output "scutil" "--get" "ComputerName" | trim }}
Run script after every macOS update
You can automate a script to run after each macOS update by creating
a run_onchange_
script and using the output
template function to run sw_vers
:
# MacOS build version: {{ output "sw_vers" "--buildVersion" }}