lib/rvm/capistrano.rb in rvm-capistrano-1.3.0.rc1 vs lib/rvm/capistrano.rb in rvm-capistrano-1.3.0.rc2

- old
+ new

@@ -77,10 +77,13 @@ _cset(:rvm_install_ruby_params, '') # Additional rvm packages to install. _cset(:rvm_install_pkgs, '') + # By default system installations add deploying user to rvm group. also try :all + _cset(:rvm_add_to_group, "#{user}") + namespace :rvm do command_curl_start = <<-EOF.gsub(/^\s*/, '') export CURL_HOME=${TMPDIR:-${HOME}}/.rvm-curl-config.$$; mkdir ${CURL_HOME}/; @@ -113,18 +116,31 @@ end else '' end command_install << "#{rvm_install_shell} -s #{rvm_install_type} --path #{rvm_path}" + case rvm_type + when :root, :system + command_install << " --add-to-rvm-group #{[rvm_add_to_group].flatten.map(&:to_s).join(",")}" + end _command = <<-EOF #{command_curl_start}; #{command_fetch} | #{command_install}; #{command_curl_end} EOF run "#{_command}".gsub(/[\s\n]+/, ' '), :shell => "#{rvm_install_shell}" end + def with_rvm_group(command) + case rvm_type + when :root, :system + "sg rvm -c \"#{command}\"" + else + command + end + end + desc <<-EOF Install RVM ruby to the server, create gemset if needed. By default ruby is installed, you can reinstall with: set :rvm_install_ruby, :reinstall @@ -140,28 +156,29 @@ task :install_ruby do ruby, gemset = rvm_ruby_string.to_s.strip.split /@/ if %w( release_path default ).include? "#{ruby}" raise "ruby can not be installed when using :rvm_ruby_string => :#{ruby}" else - command_install = "#{File.join(rvm_bin_path, "rvm")} #{rvm_install_ruby} #{ruby} -j #{rvm_install_ruby_threads} #{rvm_install_ruby_params}" + command_install = with_rvm_group("#{File.join(rvm_bin_path, "rvm")} #{rvm_install_ruby} #{ruby} -j #{rvm_install_ruby_threads} #{rvm_install_ruby_params}") if gemset - command_install << "; #{File.join(rvm_bin_path, "rvm")} #{ruby} do rvm gemset create #{gemset}" + command_install << "; " + command_install << with_rvm_group("#{File.join(rvm_bin_path, "rvm")} #{ruby} do rvm gemset create #{gemset}") end _command = <<-EOF #{command_curl_start}; #{command_install}; #{command_curl_end} EOF run "#{_command}".gsub(/[\s\n]+/, ' '), :shell => "#{rvm_install_shell}" end end - desc <<-EOF + desc <<-EOF Install RVM packages to the server. This must come before the 'rvm:install_ruby' task is called. - + The package list is empty by default. Specifiy the packages to install with: set :rvm_install_pkgs, %w[libyaml curl] Full list of packages available at https://rvm.io/packages/ or by running 'rvm pkg'. @@ -177,10 +194,10 @@ ruby, gemset = rvm_ruby_string.to_s.strip.split /@/ if %w( release_path default ).include? "#{ruby}" raise "gemset can not be created when using :rvm_ruby_string => :#{ruby}" else if gemset - run "#{File.join(rvm_bin_path, "rvm")} #{ruby} do rvm gemset create #{gemset}", :shell => "#{rvm_install_shell}" + run with_rvm_group("#{File.join(rvm_bin_path, "rvm")} #{ruby} do rvm gemset create #{gemset}", :shell => "#{rvm_install_shell}") end end end desc <<-EOF