Automated laptop provisioning using bash

Originally posted on

Over the weekend, I decided to take a page out of thoughtbot’s playbook and create a laptop script for provisioning a new development machine. Their script is a shell app that installs common utilities for web development, including homebrew, rbenv, git, postgres, and redis, among others. I love the idea of automating all of the things, so I decided to piggyback onto their idea and create a laptop script of my own.

Grab the script here

My laptop script is extremely similar to thoughtbot’s version, with some minor differences. For example, thoughbot uses zsh for their shell, but I prefer bash. There are some other command line programs I neglected to include, as I don’t use them, and I added in some minor tweaks to how the command line programs were installed. Honestly I could have just forked thoughtbot’s script and edited it to fit, but I find I learn more if I’m not mindlessly copying or editing somebody else’s programs.

Also available is my local laptop script. This script makes use of homebrew’s cask to install applications (Evernote, Dropbox and Chrome are notable examples). In addition to these apps, my local script clones my dotfiles and installs them via rcm.

With all of this automation, a new computer can be setup with my familiar defaults within minutes. Simply download the laptop zip file from GitHub, cd into the unzipped folder, and run the following:

./laptop

Automated provisioning is great. This script takes the worry and dread out of setting up a new computer and hoping everything was taken care of, and allows for quickly getting started from scratch.

Comments? I'm @dstrunk on Twitter.