BoostPosted on: July 14, 2013

 __                               __      
/\ \                             /\ \__   
\ \ \____    ___     ___     ____\ \ ,_\  
 \ \ '__`\  / __`\  / __`\  /',__\\ \ \/  
  \ \ \L\ \/\ \L\ \/\ \L\ \/\__, `\\ \ \_
   \ \_,__/\ \____/\ \____/\/\____/ \ \__\ 
    \/___/  \/___/  \/___/  \/___/   \/__/ 

Yeah, yeah, I know the ASCII's really cheesy but I couldn't help myself. Also, given the (rather silly) amount of time I spent getting the colour on it, I may as well make use of it again!

Disclaimer

  • This was made to suit my own needs and is only up here on the off chance that it might interest or help anyone. If you're going to make use of it, please fork it and customize it to your preferences.
  • I did next to no research as to whether this kind of tool existed already and I'm glad I didn't - I learned a great deal from it and I recommend you all try it sometime.
  • I'm by no means a bash scripting expert - I literally cobbled this together from a few google searches and a lot of troubleshooting. If it helps you: great, if you think I'm an idiot and am totally doing something wrong: I'll happily take constructive criticism (especially in the form of pull requests - hint hint).
  • It's still nowhere near perfect.

What's it all about then?

What all started out as me wanting to do what all the "cool kids" were doing and getting a dotfiles repo going, ended up in me writing a script that will get me all set up on any new Linux/OSX system (of which the dotfiles is just a teeny tiny part).

But why?

While this may not normally be something that one would have to do often, I'm currently contracting and with each new job, I'm usually given a machine that I need to get set up which easily wastes at least half a day of my time because I have to remember what I usually install, find the install instructions, etc., etc.

This just saves me that headache and gives me an awesome starting point to go from in just a few minutes.

The process

I'll most likely download this by first installing Dropbox which is where I have it stored. It was either that, or Git but since I can automate the git installation and have to manually download Dropbox anyway I figured I'd start there.

To run the script, I just cd into the boost directory and run: ./install.sh Ubuntu (or Gnome or OSX depending on the system).

Here's the process it follows, and what it sets up for me (at time of writing - it's bound to change over time):

  • If the OS is OSX and iTerm2 isn't being used, show the download URL and exit so iTerm2 can be start being used.
  • If OS is OSX and brew isn't installed, install it.
  • Update installer sources.
  • Install a few prerequisites (such as curl and git).
  • Symlink all my regular dotfiles.
  • Install zsh and oh-my-zsh.
  • Install a few common CLI tools: rvm and Ruby, Compass, NodeJS and npm, Grunt, and DocPad.
  • Copy across my ssh keys (they're ignored from the git repo, but they're there in Dropbox).
  • Show a list of common non-CLI apps to install (Chrome, Sublime Text, etc.).
  • Symlink all Sublime Text Preferences
  • Clone all my commonly used git repos.
  • Symlink Chrome DevTools theme.

Phew... that's pretty extensive, but also what makes it so handy and well worth the time I put into making it.

That's it

I'm pretty darn satisfied with it! Like I said before, it just gives me a great platform to get started from whenever I'm handed a new machine and it's something that will evolve over time as my preferences change.

I hope this helps someone out there, and if not: no loss - I've basically spent all my time doing this. Fun times.