Skip to content

Instantly share code, notes, and snippets.

@brandonpittman
Created May 27, 2014 01:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brandonpittman/79193de10d419470e982 to your computer and use it in GitHub Desktop.
Save brandonpittman/79193de10d419470e982 to your computer and use it in GitHub Desktop.
task :default => :update
desc "Update packages"
task :update => [:rcup, :brew, :gems]
namespace :brew do
desc "Run setup Homebrew commands..."
task :setup do
sh "brew bundle Setupfile"
end
desc "Install Homebrew packages..."
task :packages => ["brew:setup"] do
sh "brew bundle Brewfile 2> /dev/null"
end
desc "Install Homebrew casks"
task :cask => ["brew:setup"] do
sh "brew bundle Caskfile 2> /dev/null"
end
desc "Clean up after Homebrew..."
task :teardown => ["brew:packages", "brew:cask"] do
sh "brew bundle Teardownfile"
end
end
desc "Run all Homebrew tasks..."
multitask :brew => ["brew:setup", "brew:packages", "brew:cask", "brew:teardown"]
desc "Update rc files..."
multitask :rcup do
sh "rcup"
end
desc "Update installed gems"
multitask :gems do
sh "gem update && gem update --system"
end
desc "Update npm packages"
multitask :npm do
sh "npm update -g"
end
desc "Set up new computer"
task :setup_mac do
puts "Setting up everything...this might take a while..."
sh "ruby -e \"$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)\""
sh "brew bundle Brewfile Caskfile"
sh "git clone https://github.com/sstephenson/rbenv.git ~/.rbenv"
sh "git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build"
sh "rbenv install #{RBENV_VERSION}"
sh "rbenv global #{RBENV_VERSION}"
sh "git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash"
sh "git clone https://github.com/ianheggie/rbenv-binstubs.git ~/.rbenv/plugins/rbenv-binstubs"
sh "gem install bundler"
sh "bundle install"
sh "./defaults.sh"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment