As close as I care to come to declarative configuration management for my Macs.
-
git clone --recurse-submodules git@github.com:tdeitch/cfg.git
-
cd cfg
-
./setup.sh
-
Ensure the git repo is up to date with no uncommitted changes.
-
(Optional) Run
update-repo.sh
to sync changes (see next section). -
Run
setup.sh
to sync changes from cfg to the local computer.
-
Run
update-repo.sh
to sync changes made on the computer to the repo. -
Review the changes and commit the ones you want to keep.
-
(Optional) Run
brew bundle cleanup --global
to clean up Homebrew packages that are installed on the computer but not listed in the Brewfile. Run with--force
once you are sure you want to remove the listed packages. -
Run
setup.sh
to sync changes from cfg back to the local computer.
- Sometimes applications installed with homebrew-cask ask to move themselves to
the
/Applications
folder, despite already being in that folder. Moving them to a different folder and then moving them back seems to solve the problem.