sml-rubber 0.9.7 → 0.9.8
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/generators/vulcanize/templates/base/config/deploy.rb +2 -0
- data/lib/rubber/recipes/rubber/setup.rb +54 -19
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.8
|
@@ -247,36 +247,71 @@ namespace :rubber do
|
|
247
247
|
def gem_helper(update=false)
|
248
248
|
cmd = update ? "update" : "install"
|
249
249
|
|
250
|
-
|
251
|
-
#
|
252
|
-
# first do the gems that the user specified versions for
|
250
|
+
|
253
251
|
opts = get_host_options('gems') do |gem_list|
|
254
252
|
expanded_gem_list = []
|
255
253
|
gem_list.each do |gem_spec|
|
256
254
|
if gem_spec.is_a?(Array)
|
257
|
-
expanded_gem_list << "#{gem_spec[0]}
|
255
|
+
expanded_gem_list << "#{gem_spec[0]}:#{gem_spec[1]}"
|
256
|
+
else
|
257
|
+
expanded_gem_list << gem_spec
|
258
258
|
end
|
259
259
|
end
|
260
260
|
expanded_gem_list.join(' ')
|
261
261
|
end
|
262
|
+
|
262
263
|
if opts.size > 0
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
264
|
+
# Rubygems always installs even if the gem is already installed
|
265
|
+
# When providing versions, rubygems fails unless versions are provided for all gems
|
266
|
+
# This helper script works around these issues by installing gems only if they
|
267
|
+
# aren't already installed, and separates versioned/unversioned into two separate
|
268
|
+
# calls to rubygems
|
269
|
+
script = prepare_script 'gem_helper', <<-'ENDSCRIPT'
|
270
|
+
ruby - $@ <<-'EOF'
|
267
271
|
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
272
|
+
gem_cmd = ARGV[0]
|
273
|
+
gems = ARGV[1..-1]
|
274
|
+
cmd = "gem #{gem_cmd} --no-rdoc --no-ri"
|
275
|
+
|
276
|
+
to_install = {}
|
277
|
+
to_install_ver = {}
|
278
|
+
# gem list passed in, possibly with versions, as "gem1 gem2:1.2 gem3"
|
279
|
+
gems.each do |gem_spec|
|
280
|
+
parts = gem_spec.split(':')
|
281
|
+
if parts[1]
|
282
|
+
to_install_ver[parts[0]] = parts[1]
|
283
|
+
else
|
284
|
+
to_install[parts[0]] = true
|
285
|
+
end
|
274
286
|
end
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
287
|
+
|
288
|
+
installed = {}
|
289
|
+
`gem list --local`.each do |line|
|
290
|
+
parts = line.scan(/(.*) \((.*)\)/).first
|
291
|
+
next unless parts && parts.size == 2
|
292
|
+
installed[parts[0]] = parts[1].split(",")
|
293
|
+
end
|
294
|
+
|
295
|
+
to_install.delete_if {|g, v| installed.has_key?(g) } if gem_cmd == 'install'
|
296
|
+
to_install_ver.delete_if {|g, v| installed.has_key?(g) && installed[g].include?(v) }
|
297
|
+
|
298
|
+
# when versions are provided for a gem, rubygems fails unless versions
|
299
|
+
# are provided for all gems so we need to do the two groups separately
|
300
|
+
if to_install.size > 0
|
301
|
+
gem_list = to_install.keys.join(' ')
|
302
|
+
system "#{cmd} #{gem_list}"
|
303
|
+
fail "Unable to install gems" if $?.exitstatus > 0
|
304
|
+
end
|
305
|
+
if to_install_ver.size > 0
|
306
|
+
gem_list = to_install_ver.collect {|g, v| "#{g} -v #{v}"}.join(' ')
|
307
|
+
system "#{cmd} #{gem_list}"
|
308
|
+
fail "Unable to install versioned gems" if $?.exitstatus > 0
|
309
|
+
end
|
310
|
+
|
311
|
+
'EOF'
|
312
|
+
ENDSCRIPT
|
313
|
+
|
314
|
+
sudo "sh #{script} #{cmd} $CAPISTRANO:VAR$", opts do |ch, str, data|
|
280
315
|
handle_gem_prompt(ch, data, str)
|
281
316
|
end
|
282
317
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sml-rubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Conway
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-08-
|
12
|
+
date: 2009-08-24 00:00:00 -07:00
|
13
13
|
default_executable: vulcanize
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|