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