I've spend way too much time automating my setup using dotfiles.
To get started on a new machine I git clone the repository:
git clone https://github.com/fdietz/dotfiles.git ~/.dotfiles
An install.sh script creates symlinks to config files:
Then depending on if I'm on a Linux or MacOS I either run the apt-install.sh or run
brew bundle to install everything listed in my Brewfile.