namespace :rvm1 do
namespace :install do desc 'Install bundler' task :bundler do on roles(fetch(:rvm1_roles, :all)) do within release_path do execute :rvm, fetch(:rvm1_ruby_version), 'do', 'gem install bundler --no-ri' end end end desc "install RVM, but only after checking it's not already installed" task :if_necessary do on roles(fetch(:rvm1_roles, :all)) do if test("[ -f /usr/local/rvm/bin/rvm ]") puts "RVM already exists - no need to install" else invoke 'rvm1:install:rvm' end end end end desc "Add / update the RVM key from the keyserver unless it already exists" task :update_rvm_key do on roles(fetch(:rvm1_roles, :all)) do unless execute :gpg, "--list-keys | grep D39DC0E3" , raise_on_non_zero_exit: false execute :gpg, " --keyserver hkp://keyserver.ubuntu.com --recv-keys D39DC0E3" end end end desc "Set the owner of the rvm1script directory to deploy, not www-data" task :set_ownership do on roles(fetch(:rvm1_roles, :all)) do execute "sudo chown -R `whoami | xargs echo -n`:deployers #{fetch(:rvm1_auto_script_path)}" end end
end
before “rvm1:install:rvm”, “rvm1:update_rvm_key” before 'deploy', 'rvm1:install:if_necessary' # install/update RVM before 'deploy', 'rvm1:install:ruby' # install/update Ruby after 'rvm1:install:ruby', 'rvm1:install:bundler' after “deploy:set_ownership”, “rvm1:set_ownership”