Skip to content

Instantly share code, notes, and snippets.

@seth
Created May 10, 2011 20:13
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 seth/965279 to your computer and use it in GitHub Desktop.
Save seth/965279 to your computer and use it in GitHub Desktop.
# Borrowed heavily from http://github.com/atmos/cinderella
username = node[:login_name] || node[:current_user]
user_uid = node[:etc][:passwd][username]["uid"]
user_gid = node[:login_group]
DEFAULT_RUBY_VERSION = "1.8.7-p302"
rvm_init = 'source "$HOME/.rvm/scripts/rvm"'
Chef::Log.info "username: #{username}"
Chef::Log.info "user_gid: #{user_gid}"
bash "install rvm" do
user username
group user_gid
code <<-EOH
curl -s -O http://rvm.beginrescueend.com/releases/rvm-install-head && \
chmod u+x ./rvm-install-head && \
./rvm-install-head
rm -f rvm-install-head
EOH
not_if "test -d #{ENV['HOME']}/.rvm"
cwd ENV['HOME']
end
bash "updating rvm to the latest stable version" do
user username
group user_gid
code "#{rvm_init} && rvm update > ~/.rvm-update.log 2>&1"
end
ruby_path = "ruby"
bash "installing ruby" do
user username
group user_gid
code <<-EOH
#{rvm_init} && rvm install #{DEFAULT_RUBY_VERSION} -C \
--with-openssl-dir=/usr/local \
--with-readline-dir=/usr/local && \
# rvm install exits 0 even if build fails :-(
rvm list |grep -q #{DEFAULT_RUBY_VERSION}
EOH
not_if "test -f #{ENV['HOME']}/.rvm/rubies/ruby-#{DEFAULT_RUBY_VERSION}/bin/ruby"
end
bash "set default rvm ruby" do
user username
group user_gid
code "#{rvm_init} && rvm use #{DEFAULT_RUBY_VERSION} --default"
not_if "test -ef #{ENV['HOME']}/.rvm/bin/default_ruby #{ENV['HOME']}/.rvm/wrappers/ruby-#{DEFAULT_RUBY_VERSION}/ruby"
end
cookbook_file "#{ENV['HOME']}/.rvm/gemsets/default.gems" do
source "default.gems"
owner username
group user_gid
end
bash "install default gems" do
user username
group user_gid
code " #{rvm_init} && rvm gemset load ~/.rvm/gemsets/default.gems"
end
# template "#{ENV['HOME']}/.gemrc" do
# source "dot.gemrc.erb"
# end
# template "#{ENV['HOME']}/.rdebugrc" do
# source "dot.rdebugrc.erb"
# end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment