/john-osx-uncrate

Primary LanguageShellApache License 2.0Apache-2.0

my-uncrate

This is a skeleton project to be cloned and configured for your own setup. Clonet his repo and follow the instructions to get your automated installs up and running.

Dependencies

Mac OS X

  • Install Xcode from the App Store
  • Install Xcode Command Line Tools
  • Install ruby (Only tested using RVM with ruby 1.9.3)

Ubuntu

  • Install git
  • Install ruby (Only tested using RVM with ruby 1.9.3)

Setup

Create a new repository to store your uncrate configuration. Use my-uncrate as a skeleton for your own uncrate setup using the following steps:

sudo mkdir -p /opt/uncrate
sudo chown ${USER}:${GROUP} /opt/uncrate
git clone https://github.com/uncrate/my-uncrate /opt/uncrate/repo
cd /opt/uncrate/repo
git remote rm origin
git remote add origin <location of your new git repository>
git push -u origin master

Source the uncrate environment

Source the uncrate environment in your ~/.bashrc or ~/.zshrc by adding the following line at the end of your config:

[ -f /opt/uncrate/env.sh ] && source /opt/uncrate/env.sh

Customization

The recipes that are run can be customized using the soloistrc and Cheffile files. The Cheffile defines the location of each of the cookbooks needed to run your recipes. In soloistrc you define each recipe to run and can set/override the recipe attributes.

Including Cookbooks

Add the cookbooks you want to include to the Cheffile located in the uncrate repo (/opt/uncrate/repo/Cheffile):

# Cookbooks in the uncrate org (github.com/uncrate/*-crate) can be included using the github method.
github "sublime_text-crate", "master"
github "intellij-crate", "master"

# Cookbooks hosted elsewhere can be included using the cookbook method
cookbook 'some-crate',
  :git => 'git://github.com/uncrate/vim-crate.git',
  :ref => 'master'

Including Recipes and Configuring Attributes

Add the recipes you want to run and configure any attributes in the soloistrc file located in the uncrate repo (/opt/uncrate/repo/soloistrc):

recipes:
  - uncrate_base # base recipe must be included
  - sublime_text-crate
  - intellij-crate
node_attributes:
  uncrate:
    user: johnlcox # use your OS username
  intellij:
    install_flaver: intellij_community_edition

Running it

Once you have all of the recipes configured it's time to run uncrate and let it install all of your apps. Make sure all of your customizations are commited and pushed to the remote origin. Running it is as simple as running the uncrate shell script. The shell script will make sure the repo is the up to date from origin (reseting any uncommited changes).

script/uncrate