rvm-capistrano 1.3.3 → 1.3.4.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -33,14 +33,14 @@ The following code will:
33
33
  Example:
34
34
 
35
35
  ```ruby
36
+ require "rvm/capistrano"
37
+
36
38
  set :rvm_ruby_string, :local # use the same ruby as used locally for deployment
37
39
  set :rvm_autolibs_flag, "read-only" # more info: rvm help autolibs
38
40
 
39
41
  before 'deploy:setup', 'rvm:install_rvm' # install RVM
40
42
  before 'deploy:setup', 'rvm:install_ruby' # install Ruby and create gemset, OR:
41
43
  # before 'deploy:setup', 'rvm:create_gemset' # only create gemset
42
-
43
- require "rvm/capistrano"
44
44
  ```
45
45
 
46
46
  ### Disabling `bundle --deployment` when using gemsets
@@ -57,12 +57,12 @@ set :bundle_flags, '--system --quiet'
57
57
  Update RVM and make sure Ruby is installed on every deploy:
58
58
 
59
59
  ```ruby
60
+ require "rvm/capistrano"
61
+
60
62
  set :rvm_ruby_string, :local # use the same ruby as used locally for deployment
61
63
 
62
64
  before 'deploy', 'rvm:install_rvm' # update RVM
63
65
  before 'deploy', 'rvm:install_ruby' # install Ruby and create gemset (both if missing)
64
-
65
- require "rvm/capistrano"
66
66
  ```
67
67
 
68
68
  ### To use the ruby version currently active locally
@@ -80,7 +80,7 @@ set :rvm_require_role, :app
80
80
  require "rvm/capistrano"
81
81
  ```
82
82
 
83
- The order is important `:rvm_require_role` has to be `set` before `require "rvm/capistrano"`.
83
+ It is important to `set :rvm_require_role` before `require "rvm/capistrano"`.
84
84
 
85
85
  ### To restrict rvm to only some servers
86
86
 
@@ -139,7 +139,7 @@ end
139
139
 
140
140
  - `:rvm_install_shell` - shell to be used for `rvm` operations, by default `bash`, most likely you do not need to change it
141
141
  - `:rvm_install_ruby` - a command used to install ruby, by default `install`, most likely you do not need to change it
142
- - `:rvm_install_ruby_threads` - number of threads to use for ruby compilation, by default it's number of CPU cores on Linux
142
+ - `:rvm_install_ruby_threads` - number of threads to use for ruby compilation, rvm by default uses all CPU cores
143
143
  - `:rvm_install_ruby_params` - parameters for ruby, example `--patch railsexpress`
144
144
  - `:rvm_install_pkgs` - array of packages to install with `cap rvm:install_pkgs`
145
145
  - `:rvm_add_to_group` - user name to add to `rvm` group when RVM is installed with `:rvm_type` `:system`, by default it's the user name that runs deploy
@@ -3,10 +3,12 @@
3
3
  module Capistrano
4
4
  Configuration.instance(true).load do
5
5
 
6
- # Taken from the capistrano code.
7
- def _cset(name, *args, &block)
8
- unless exists?(name)
9
- set(name, *args, &block)
6
+ unless methods.map(&:to_sym).include?(:_cset)
7
+ # Taken from the capistrano code.
8
+ def _cset(name, *args, &block)
9
+ unless exists?(name)
10
+ set(name, *args, &block)
11
+ end
10
12
  end
11
13
  end
12
14
 
@@ -16,26 +18,9 @@ module Capistrano
16
18
  end
17
19
  end
18
20
 
19
- _cset :rvm_shell do
20
- shell = File.join(rvm_bin_path, "rvm-shell")
21
- ruby = fetch(:rvm_ruby_string_evaluated).strip
22
- case ruby
23
- when "release_path"
24
- shell = "rvm_path=#{rvm_path} #{shell} --path '#{release_path}'"
25
- when "local"
26
- ruby = (ENV['GEM_HOME'] || "").gsub(/.*\//, "")
27
- raise "Failed to get ruby version from GEM_HOME. Please make sure rvm is loaded!" if ruby.empty?
28
- shell = "rvm_path=#{rvm_path} #{shell} '#{ruby}'"
29
- else
30
- shell = "rvm_path=#{rvm_path} #{shell} '#{ruby}'" unless ruby.empty?
31
- end
32
- shell
33
- end
34
- if fetch(:rvm_require_role,nil).nil?
35
- _cset :default_shell do
36
- fetch(:rvm_shell)
37
- end
38
- else
21
+ # this is part of check, search for :rvm_require_role
22
+ unless fetch(:rvm_require_role,nil).nil?
23
+ set :rvm_require_role_was_set_before_require, true
39
24
  class << self
40
25
  def run(cmd, options={}, &block)
41
26
  if options[:eof].nil? && !cmd.include?(sudo)
@@ -61,74 +46,105 @@ module Capistrano
61
46
  end
62
47
  end
63
48
 
64
- # Let users set the type of their rvm install.
65
- _cset(:rvm_type, :user)
66
-
67
- # Define rvm_path
68
- # This is used in the default_shell command to pass the required variable to rvm-shell, allowing
69
- # rvm to boostrap using the proper path. This is being lost in Capistrano due to the lack of a
70
- # full environment.
71
- _cset(:rvm_path) do
72
- case rvm_type
73
- when :root, :system
74
- "/usr/local/rvm"
75
- when :local, :user, :default
76
- "$HOME/.rvm/"
77
- else
78
- rvm_type.to_s.empty? ? "$HOME/.rvm" : rvm_type.to_s
49
+ on :load do
50
+ _cset :rvm_shell do
51
+ shell = File.join(rvm_bin_path, "rvm-shell")
52
+ ruby = fetch(:rvm_ruby_string_evaluated).strip
53
+ case ruby
54
+ when "release_path"
55
+ shell = "rvm_path=#{rvm_path} #{shell} --path '#{release_path}'"
56
+ when "local"
57
+ ruby = (ENV['GEM_HOME'] || "").gsub(/.*\//, "")
58
+ raise "Failed to get ruby version from GEM_HOME. Please make sure rvm is loaded!" if ruby.empty?
59
+ shell = "rvm_path=#{rvm_path} #{shell} '#{ruby}'"
60
+ else
61
+ shell = "rvm_path=#{rvm_path} #{shell} '#{ruby}'" unless ruby.empty?
62
+ end
63
+ shell
79
64
  end
80
- end
81
65
 
82
- # Let users override the rvm_bin_path
83
- _cset(:rvm_bin_path) do
84
- case rvm_type
85
- when :root, :system
86
- "/usr/local/rvm/bin"
87
- when :local, :user, :default
88
- "$HOME/.rvm/bin"
89
- else
90
- rvm_type.to_s.empty? ? "#{rvm_path}/bin" : rvm_type.to_s
66
+ # this is part of check, search for :rvm_require_role
67
+ if fetch(:rvm_require_role,nil).nil?
68
+ set :default_shell do
69
+ fetch(:rvm_shell)
70
+ end
71
+ elsif fetch(:rvm_require_role_was_set_before_require, nil).nil?
72
+ raise "
73
+
74
+ ERROR: detected 'set :rvm_require_role, \"#{fetch(:rvm_require_role,nil)}\"' after 'require \"rvm/capistrano\"', please move it above for proper functioning.
75
+
76
+ "
77
+ end
78
+
79
+ # Let users set the type of their rvm install.
80
+ _cset(:rvm_type, :user)
81
+
82
+ # Define rvm_path
83
+ # This is used in the default_shell command to pass the required variable to rvm-shell, allowing
84
+ # rvm to boostrap using the proper path. This is being lost in Capistrano due to the lack of a
85
+ # full environment.
86
+ _cset(:rvm_path) do
87
+ case rvm_type
88
+ when :root, :system
89
+ "/usr/local/rvm"
90
+ when :local, :user, :default
91
+ "$HOME/.rvm/"
92
+ else
93
+ rvm_type.to_s.empty? ? "$HOME/.rvm" : rvm_type.to_s
94
+ end
91
95
  end
92
- end
93
96
 
94
- set :rvm_ruby_string_evaluated do
95
- value = fetch(:rvm_ruby_string, :default)
96
- if value.to_sym == :local
97
- value = ENV['GEM_HOME'].gsub(/.*\//,"")
97
+ # Let users override the rvm_bin_path
98
+ _cset(:rvm_bin_path) do
99
+ case rvm_type
100
+ when :root, :system
101
+ "/usr/local/rvm/bin"
102
+ when :local, :user, :default
103
+ "$HOME/.rvm/bin"
104
+ else
105
+ rvm_type.to_s.empty? ? "#{rvm_path}/bin" : rvm_type.to_s
106
+ end
107
+ end
108
+
109
+ set :rvm_ruby_string_evaluated do
110
+ value = fetch(:rvm_ruby_string, :default)
111
+ if value.to_sym == :local
112
+ value = ENV['GEM_HOME'].gsub(/.*\//,"")
113
+ end
114
+ value.to_s
98
115
  end
99
- value.to_s
100
- end
101
116
 
102
- # Let users configure a path to export/import gemsets
103
- _cset(:rvm_gemset_path, "#{rvm_path}/gemsets")
117
+ # Let users configure a path to export/import gemsets
118
+ _cset(:rvm_gemset_path, "#{rvm_path}/gemsets")
104
119
 
105
- # Use the default ruby on the server, by default :)
106
- _cset(:rvm_ruby_string, :default)
120
+ # Use the default ruby on the server, by default :)
121
+ _cset(:rvm_ruby_string, :default)
107
122
 
108
- # Default sudo state
109
- _cset(:rvm_install_with_sudo, false)
123
+ # Default sudo state
124
+ _cset(:rvm_install_with_sudo, false)
110
125
 
111
- # Let users set the install type and shell of their choice.
112
- _cset(:rvm_install_type, :stable)
113
- _cset(:rvm_install_shell, :bash)
126
+ # Let users set the install type and shell of their choice.
127
+ _cset(:rvm_install_type, :stable)
128
+ _cset(:rvm_install_shell, :bash)
114
129
 
115
- # Let users set the (re)install for ruby.
116
- _cset(:rvm_install_ruby, :install)
117
- _cset(:rvm_install_ruby_threads, "$(cat /proc/cpuinfo 2>/dev/null | (grep vendor_id || echo 'vendor_id : Other';) | wc -l)")
130
+ # Let users set the (re)install for ruby.
131
+ _cset(:rvm_install_ruby, :install)
118
132
 
119
- # Pass no special params to the ruby build by default
120
- _cset(:rvm_install_ruby_params, '')
133
+ # Pass no special params to the ruby build by default
134
+ _cset(:rvm_install_ruby_params, '')
121
135
 
122
- # Additional rvm packages to install.
123
- _cset(:rvm_install_pkgs, [])
136
+ # Additional rvm packages to install.
137
+ _cset(:rvm_install_pkgs, [])
124
138
 
125
- # By default system installations add deploying user to rvm group. also try :all
126
- _cset(:rvm_add_to_group, fetch(:user,"$USER"))
139
+ # By default system installations add deploying user to rvm group. also try :all
140
+ _cset(:rvm_add_to_group, fetch(:user,"$USER"))
141
+
142
+ end
127
143
 
128
144
  namespace :rvm do
129
145
 
130
146
  def run_silent_curl(command)
131
- run <<-EOF.gsub(/[\s\n]+/, ' '), :shell => "#{rvm_install_shell}"
147
+ run(<<-EOF.gsub(/[\s]+/, ' '), :shell => "#{rvm_install_shell}")
132
148
  __LAST_STATUS=0;
133
149
  export CURL_HOME="${TMPDIR:-${HOME}}/.rvm-curl-config.$$";
134
150
  mkdir ${CURL_HOME}/;
@@ -227,14 +243,14 @@ fi
227
243
 
228
244
  By default ruby is compiled using all CPU cores, change with:
229
245
 
230
- set :rvm_install_ruby_threads, :reinstall
246
+ set :rvm_install_ruby_threads, 5
231
247
 
232
248
  By default BASH is used for installer, change with:
233
249
 
234
250
  set :rvm_install_shell, :zsh
235
251
  EOF
236
252
  rvm_task :install_ruby do
237
- ruby, gemset = fetch(:rvm_ruby_string_evaluated).to_s.strip.split /@/
253
+ ruby, gemset = fetch(:rvm_ruby_string_evaluated).to_s.strip.split(/@/)
238
254
  if %w( release_path default ).include? "#{ruby}"
239
255
  raise "
240
256
 
@@ -251,12 +267,14 @@ ruby can not be installed when using :rvm_ruby_string => :#{ruby}
251
267
  2 fail read-fail
252
268
  ).include?( autolibs_flag )
253
269
 
270
+ install_ruby_threads = fetch(:rvm_install_ruby_threads,nil).nil? ? '' : "-j #{rvm_install_ruby_threads}"
271
+
254
272
  if autolibs_flag_no_requirements
255
- command_install << with_rvm_group("#{File.join(rvm_bin_path, "rvm")} --autolibs=#{autolibs_flag} #{rvm_install_ruby} #{ruby} -j #{rvm_install_ruby_threads} #{rvm_install_ruby_params}")
273
+ command_install << with_rvm_group("#{File.join(rvm_bin_path, "rvm")} --autolibs=#{autolibs_flag} #{rvm_install_ruby} #{ruby} #{install_ruby_threads} #{rvm_install_ruby_params}")
256
274
  else
257
275
  command_install << "#{rvm_if_sudo} #{File.join(rvm_bin_path, "rvm")} --autolibs=#{autolibs_flag} requirements #{ruby}"
258
276
  command_install << "; "
259
- command_install << with_rvm_group("#{File.join(rvm_bin_path, "rvm")} --autolibs=1 #{rvm_install_ruby} #{ruby} -j #{rvm_install_ruby_threads} #{rvm_install_ruby_params}")
277
+ command_install << with_rvm_group("#{File.join(rvm_bin_path, "rvm")} --autolibs=1 #{rvm_install_ruby} #{ruby} #{install_ruby_threads} #{rvm_install_ruby_params}")
260
278
  end
261
279
 
262
280
  if gemset
@@ -287,7 +305,7 @@ ruby can not be installed when using :rvm_ruby_string => :#{ruby}
287
305
 
288
306
  desc "Create gemset"
289
307
  rvm_task :create_gemset do
290
- ruby, gemset = fetch(:rvm_ruby_string_evaluated).to_s.strip.split /@/
308
+ ruby, gemset = fetch(:rvm_ruby_string_evaluated).to_s.strip.split(/@/)
291
309
  if %w( release_path default ).include? "#{ruby}"
292
310
  raise "
293
311
 
@@ -310,7 +328,7 @@ gemset can not be created when using :rvm_ruby_string => :#{ruby}
310
328
  The gemset can be created with 'cap rvm:gemset_export'.
311
329
  EOF
312
330
  rvm_task :import_gemset do
313
- ruby, gemset = fetch(:rvm_ruby_string_evaluated).to_s.strip.split /@/
331
+ ruby, gemset = fetch(:rvm_ruby_string_evaluated).to_s.strip.split(/@/)
314
332
  if %w( release_path default ).include? "#{ruby}"
315
333
  raise "gemset can not be imported when using :rvm_ruby_string => :#{ruby}"
316
334
  else
@@ -329,7 +347,7 @@ gemset can not be created when using :rvm_ruby_string => :#{ruby}
329
347
  The gemset can be imported with 'cap rvm:gemset_import'.
330
348
  EOF
331
349
  rvm_task :export_gemset do
332
- ruby, gemset = fetch(:rvm_ruby_string_evaluated).to_s.strip.split /@/
350
+ ruby, gemset = fetch(:rvm_ruby_string_evaluated).to_s.strip.split(/@/)
333
351
  if %w( release_path default ).include? "#{ruby}"
334
352
  raise "gemset can not be imported when using :rvm_ruby_string => :#{ruby}"
335
353
  else
@@ -1,5 +1,5 @@
1
1
  module RVM
2
2
  class Capistrano
3
- VERSION="1.3.3"
3
+ VERSION="1.3.4.rc1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rvm-capistrano
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease:
4
+ hash: -845565846
5
+ prerelease: 6
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 3
10
- version: 1.3.3
9
+ - 4
10
+ - rc
11
+ - 1
12
+ version: 1.3.4.rc1
11
13
  platform: ruby
12
14
  authors:
13
15
  - Wayne E. Seguin
@@ -16,8 +18,7 @@ autorequire:
16
18
  bindir: bin
17
19
  cert_chain: []
18
20
 
19
- date: 2013-06-26 00:00:00 +02:00
20
- default_executable:
21
+ date: 2013-06-27 00:00:00 Z
21
22
  dependencies:
22
23
  - !ruby/object:Gem::Dependency
23
24
  name: capistrano
@@ -82,7 +83,6 @@ files:
82
83
  - lib/rvm/capistrano.rb
83
84
  - lib/rvm/capistrano/version.rb
84
85
  - spec/spec_helper.rb
85
- has_rdoc: true
86
86
  homepage: https://github.com/wayneeseguin/rvm-capistrano
87
87
  licenses:
88
88
  - MIT
@@ -103,16 +103,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
103
  required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  none: false
105
105
  requirements:
106
- - - ">="
106
+ - - ">"
107
107
  - !ruby/object:Gem::Version
108
- hash: 3
108
+ hash: 25
109
109
  segments:
110
- - 0
111
- version: "0"
110
+ - 1
111
+ - 3
112
+ - 1
113
+ version: 1.3.1
112
114
  requirements: []
113
115
 
114
116
  rubyforge_project:
115
- rubygems_version: 1.6.2
117
+ rubygems_version: 1.8.24
116
118
  signing_key:
117
119
  specification_version: 3
118
120
  summary: RVM / Capistrano Integration Gem