For the very first time since buying my 2012 Mac Mini in 2014 I have reformated it with a fresh OS X install. There was no particular reason for this other than wanting a fresh install of OS X with the very minimal install again - too many files on my system were taking up my drive, so it was just time. The system was still running absolutely as it was when I bought it, so it was nothing related to that. Just saying, Macs don't need that kind of reformat anyway.
Anyway, since this is the first reinstall of OS X on that machine, I thought I'd give my configuration script a try. It really is wonderful, and it's really all thanks to my friends Ben and Merlin that it's as good as this.
The script looks like:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install rlwrap
brew install Caskroom/cask/smlnj
brew install Caskroom/cask/osxfuse
brew install sshfs
brew install python
brew install homebrew/x11/swi-prolog
echo "Insert Dropbox path:"
read input_variable
echo "export $DROPBOX=" >> ~.bash_profile
echo "$input_variable" >> ~.bash_profile
if [ ! -d ~/Pictures/Screenshots ]
then
mkdir ~/Pictures/Screenshots
fi
rm ~/Library/Preferences/com.apple.dock.plist
rm ~/Library/Preferences/com.apple.finder.plist
sudo cp "$DROPBOX/Mac configurator/configuration/com.apple.dock.plist" ~/Library/Preferences/com.apple.dock.plist
sudo cp "$DROPBOX/Mac configurator/configuration/com.apple.finder.plist" ~/Library/Preferences/com.apple.finder.plist
defaults write com.apple.screencapture location ~/Pictures/Screenshots;
killall SystemUIServer
So once I got my Mac up and running and Dropbox installed, I run this script to copy all the necessary files across to their places, which restores my Mac to how it should look (i.e. it makes Finder and the Dock identical across my Macs). I've highlighted line 12 because it is where my Dropbox directory is put into my Bash profile so that I can reference it from any script easily.
By the way, this is not me saying that Bash is beautiful, because the syntax is horrible. All I am saying is it is a pretty powerful little shell scripting language.