rconf 0.8.21 → 0.8.29
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/rconf +14 -0
- data/lib/rconf/command.rb +20 -4
- data/lib/rconf/configurator.rb +2 -2
- data/lib/rconf/configurators/mercurial_configurator.rb +51 -23
- data/lib/rconf/configurators/ruby_configurator.rb +26 -2
- data/lib/rconf/platform.rb +3 -2
- data/lib/rconf/platforms/darwin.rb +15 -1
- data/lib/rconf/version.rb +1 -1
- data/spec/command_spec.rb +10 -3
- data/spec/platform_spec.rb +10 -4
- data/spec/profile_spec.rb +5 -1
- metadata +17 -16
data/bin/rconf
CHANGED
@@ -33,6 +33,7 @@ where [options] are:
|
|
33
33
|
EOS
|
34
34
|
|
35
35
|
opt :configurators, 'Show available configurators'
|
36
|
+
opt :platform, 'Show current platform'
|
36
37
|
opt :update, 'Update rconf to latest version'
|
37
38
|
opt :remove, 'Remove rconf from all gemsets'
|
38
39
|
opt :config, 'Set path to configuration file', :type => :string
|
@@ -59,6 +60,8 @@ where [options] are:
|
|
59
60
|
Command.set_verbose if opts[:verbose]
|
60
61
|
if opts[:configurators]
|
61
62
|
new.list_configurators
|
63
|
+
elsif opts[:platform]
|
64
|
+
new.show_platform
|
62
65
|
elsif opts[:update]
|
63
66
|
new.update
|
64
67
|
elsif opts[:remove]
|
@@ -93,6 +96,17 @@ where [options] are:
|
|
93
96
|
end
|
94
97
|
end
|
95
98
|
|
99
|
+
# Show current platform as detected by rconf
|
100
|
+
#
|
101
|
+
# === Return
|
102
|
+
# true:: Always return true
|
103
|
+
def show_platform
|
104
|
+
puts "rconf detected the following:\n\n"
|
105
|
+
puts "Family: #{Platform.family}"
|
106
|
+
puts "Flavor: #{Platform.flavor}"
|
107
|
+
puts "Release: #{Platform.release}"
|
108
|
+
end
|
109
|
+
|
96
110
|
# Update rconf to latest in all installed rubies
|
97
111
|
#
|
98
112
|
# === Return
|
data/lib/rconf/command.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
|
1
|
+
# Copyright (C) 2011-2012 RightScale, Inc, All Rights Reserved Worldwide.
|
2
2
|
#
|
3
3
|
# THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
|
4
4
|
# AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
|
@@ -27,6 +27,11 @@ module RightConf
|
|
27
27
|
# command(String):: Command to run
|
28
28
|
# args(Array):: Command arguments
|
29
29
|
#
|
30
|
+
# === Options
|
31
|
+
# abort_on_failure(bool):: Whether to raise an exception in case command
|
32
|
+
# returns an error (false by default)
|
33
|
+
# env:: Hash of environment variables keyed by name
|
34
|
+
#
|
30
35
|
# === Return
|
31
36
|
# result(CommandResult):: Result of execution (output and exit status)
|
32
37
|
def execute(command, *args)
|
@@ -35,7 +40,7 @@ module RightConf
|
|
35
40
|
opts = args[-1]
|
36
41
|
args = args[0..-2]
|
37
42
|
end
|
38
|
-
res = Platform.dispatch(command, *args) { :execute }
|
43
|
+
res = Platform.dispatch(command, opts[:env], *args) { :execute }
|
39
44
|
if @verbose
|
40
45
|
msg = ([command] + args).compact.join(' ') + ' => ' +
|
41
46
|
res.status.to_s + ': ' + res.output
|
@@ -53,6 +58,11 @@ module RightConf
|
|
53
58
|
# command(String):: Command to run
|
54
59
|
# args(Array):: Command arguments
|
55
60
|
#
|
61
|
+
# === Options
|
62
|
+
# abort_on_failure(bool):: Whether to raise an exception in case command
|
63
|
+
# returns an error (false by default)
|
64
|
+
# env:: Hash of environment variables keyed by name
|
65
|
+
#
|
56
66
|
# === Return
|
57
67
|
# result(CommandResult):: Result of execution (output and exit status)
|
58
68
|
# NOTE: This is the result returned by RVM, not the underlying command
|
@@ -85,12 +95,17 @@ module RightConf
|
|
85
95
|
#
|
86
96
|
# === Parameters
|
87
97
|
# command(String):: Command name
|
98
|
+
# env(Hash):: Hash of environment variables keyed by name
|
88
99
|
# params(Array):: List of parameters to pass to command
|
89
100
|
#
|
90
101
|
# === Return
|
91
102
|
# result(CommandResult):: Result of execution (output and exit status)
|
92
|
-
def execute_linux(command, *args)
|
103
|
+
def execute_linux(command, env, *args)
|
104
|
+
env ||= {}
|
105
|
+
old_envs = env.keys.inject({}) { |o, k| o[k] = ENV[k]; o }
|
106
|
+
env.each { |k, v| ENV[k] = v.to_s }
|
93
107
|
out = `#{Shellwords.join([command, *args])} 2>&1`
|
108
|
+
old_envs.each { |k, v| ENV[k] = v }
|
94
109
|
result = CommandResult.new(out, $?.exitstatus)
|
95
110
|
end
|
96
111
|
alias :execute_darwin :execute_linux
|
@@ -99,11 +114,12 @@ module RightConf
|
|
99
114
|
#
|
100
115
|
# === Parameters
|
101
116
|
# command(String):: Command name
|
117
|
+
# env(Hash):: Hash of environment variables keyed by name
|
102
118
|
# params(Array):: List of parameters to pass to command
|
103
119
|
#
|
104
120
|
# === Return
|
105
121
|
# result(CommandResult):: Result of execution (output and exit status)
|
106
|
-
def execute_windows(command, *args)
|
122
|
+
def execute_windows(command, env, *args)
|
107
123
|
raise 'TBD!'
|
108
124
|
end
|
109
125
|
|
data/lib/rconf/configurator.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
|
1
|
+
# Copyright (C) 2011-2012 RightScale, Inc, All Rights Reserved Worldwide.
|
2
2
|
#
|
3
3
|
# THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
|
4
4
|
# AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
|
@@ -136,7 +136,7 @@ module RightConf
|
|
136
136
|
must_configure = (Profile.force_check? || sha != sig) && !check
|
137
137
|
end
|
138
138
|
Platform.dispatch(*args) { :run } if must_configure
|
139
|
-
Profile.set_configurator_signature(key, sig)
|
139
|
+
Profile.set_configurator_signature(key, sig) unless aborting
|
140
140
|
true
|
141
141
|
end
|
142
142
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
|
1
|
+
# Copyright (C) 2011-2012 RightScale, Inc, All Rights Reserved Worldwide.
|
2
2
|
#
|
3
3
|
# THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
|
4
4
|
# AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
|
@@ -14,7 +14,9 @@ module RightConf
|
|
14
14
|
class MercurialConfigurator
|
15
15
|
|
16
16
|
MAC_MERCURIAL_URL = 'http://mercurial.berkwood.com/binaries/Mercurial-1.8.1-py2.6-macosx10.6.zip'
|
17
|
+
MAC_10_7_MERCURIAL_URL = 'http://mercurial.berkwood.com/binaries/Mercurial-2.0.2-py2.7-macosx10.7.zip'
|
17
18
|
MAC_MERCURIAL_FILE = 'mercurial-1.8.1_20110310-py2.6-macosx10.6'
|
19
|
+
MAC_10_7_MERCURIAL_FILE = 'mercurial-2.0.2_20120104-py2.7-macosx10.7'
|
18
20
|
|
19
21
|
include Configurator
|
20
22
|
|
@@ -43,10 +45,8 @@ module RightConf
|
|
43
45
|
# === Return
|
44
46
|
# true:: Always return true
|
45
47
|
def run_linux
|
46
|
-
|
47
|
-
|
48
|
-
PackageInstaller.install('mercurial', opts) { !mercurial_installed }
|
49
|
-
end
|
48
|
+
opts = { :report => true }.merge(abort_option('Failed to install Mercurial'))
|
49
|
+
PackageInstaller.install('mercurial', opts)
|
50
50
|
end
|
51
51
|
|
52
52
|
# Brew does not have a package for mercurial :(
|
@@ -54,26 +54,54 @@ module RightConf
|
|
54
54
|
# === Return
|
55
55
|
# true:: Always return true
|
56
56
|
def run_darwin
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
abort_option('Failed to install Mercurial'))
|
71
|
-
end
|
72
|
-
ensure
|
73
|
-
FileUtils.rm_rf(tempdir)
|
57
|
+
report_check('Installing Mercurial')
|
58
|
+
tempdir = File.join(ENV['HOME'], '.rconf_temp')
|
59
|
+
FileUtils.mkdir_p(tempdir)
|
60
|
+
begin
|
61
|
+
Dir.chdir(tempdir) do
|
62
|
+
Command.execute('curl', '-O', '-f', mac_mercurial_url,
|
63
|
+
abort_option('Failed to download Mercurial'))
|
64
|
+
Command.execute('unzip', File.basename(mac_mercurial_url),
|
65
|
+
abort_option('Failed to unzip Mercurial'))
|
66
|
+
end
|
67
|
+
Dir.chdir(File.join(tempdir, mac_mercurial_file)) do
|
68
|
+
Command.sudo('installer', '-pkg', mac_mercurial_file.gsub('_', '+') + '.mpkg', '-target', '/',
|
69
|
+
abort_option('Failed to install Mercurial'))
|
74
70
|
end
|
75
|
-
|
71
|
+
ensure
|
72
|
+
FileUtils.rm_rf(tempdir)
|
76
73
|
end
|
74
|
+
report_success
|
75
|
+
end
|
76
|
+
|
77
|
+
# URL to mercurial installer for Mac OS X
|
78
|
+
def mac_mercurial_url
|
79
|
+
Platform.dispatch { :mac_mercurial_url }
|
80
|
+
end
|
81
|
+
|
82
|
+
# URL to mercurial installer for Mac OS X < 10.7
|
83
|
+
def mac_mercurial_url_darwin
|
84
|
+
MAC_MERCURIAL_URL
|
85
|
+
end
|
86
|
+
|
87
|
+
# URL to mercurial installer for Mac OS X >= 10.7
|
88
|
+
def mac_mercurial_url_darwin_lion
|
89
|
+
MAC_10_7_MERCURIAL_URL
|
90
|
+
end
|
91
|
+
|
92
|
+
# File name of mercurial installer for Mac OS X
|
93
|
+
def mac_mercurial_file
|
94
|
+
Platform.dispatch { :mac_mercurial_file }
|
95
|
+
end
|
96
|
+
|
97
|
+
# File name of mercurial installer for Mac OS X < 10.7
|
98
|
+
def mac_mercurial_file_darwin
|
99
|
+
MAC_MERCURIAL_FILE
|
100
|
+
end
|
101
|
+
|
102
|
+
# File name of mercurial installer for Mac OS X >= 10.7
|
103
|
+
def mac_mercurial_file_darwin_lion
|
104
|
+
MAC_10_7_MERCURIAL_FILE
|
77
105
|
end
|
78
106
|
|
79
107
|
# Install Windows software
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
|
1
|
+
# Copyright (C) 2011-2012 RightScale, Inc, All Rights Reserved Worldwide.
|
2
2
|
#
|
3
3
|
# THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
|
4
4
|
# AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
|
@@ -64,7 +64,7 @@ module RightConf
|
|
64
64
|
when /is not installed\./
|
65
65
|
report_failure
|
66
66
|
report_fatal "Failed to install #{ruby}" if @tried
|
67
|
-
|
67
|
+
Platform.dispatch(version) { :install_ruby }
|
68
68
|
@tried = true
|
69
69
|
Command.execute_in_ruby('gem', 'install', 'rconf') unless gemset
|
70
70
|
run
|
@@ -185,6 +185,30 @@ module RightConf
|
|
185
185
|
true
|
186
186
|
end
|
187
187
|
|
188
|
+
# Install given ruby version using rvm
|
189
|
+
# On Lion, need to setup CC env var before running rvm install
|
190
|
+
#
|
191
|
+
# === Parameters
|
192
|
+
# ruby(String):: Ruby version compatible with rvm
|
193
|
+
#
|
194
|
+
# === Return
|
195
|
+
# true:: Always return true
|
196
|
+
def install_ruby_darwin(ruby)
|
197
|
+
report_check("Installing #{ruby} (this will take a while, please be patient)")
|
198
|
+
xml = Command.execute('system_profiler', 'SPDeveloperToolsDataType', '-xml')
|
199
|
+
version = Command.execute('xpath', '"//*[text()=\'_items\']/following-sibling::array/dict/child::key[text()=\'spdevtools_version\']/following-sibling::string/text()"')
|
200
|
+
env = {}
|
201
|
+
if version =~ /^4\.2\./
|
202
|
+
if !File.executable?('/usr/bin/gcc-4.2')
|
203
|
+
report_fatal("The C compiler included with Xcode #{version} produces buggy ruby interpreters, please install the C compilers from https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg and re-run rconf")
|
204
|
+
else
|
205
|
+
env['CC'] = '/usr/bin/gcc-4.2'
|
206
|
+
end
|
207
|
+
end
|
208
|
+
Command.execute('rvm', 'install', ruby, :abort_on_failure => 'Failed to install ruby', :env => env)
|
209
|
+
report_success
|
210
|
+
end
|
211
|
+
|
188
212
|
# Make sure to install all required linux packages first
|
189
213
|
#
|
190
214
|
# === Return
|
data/lib/rconf/platform.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
|
1
|
+
# Copyright (C) 2011-2012 RightScale, Inc, All Rights Reserved Worldwide.
|
2
2
|
#
|
3
3
|
# THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
|
4
4
|
# AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
|
@@ -106,7 +106,8 @@ module RightConf
|
|
106
106
|
def dispatch_candidates(prefix)
|
107
107
|
candidates = ["#{prefix}_#{family}_#{flavor}_#{release}",
|
108
108
|
"#{prefix}_#{family}_#{flavor}",
|
109
|
-
"#{prefix}_#{family}"
|
109
|
+
"#{prefix}_#{family}",
|
110
|
+
"#{prefix}"]
|
110
111
|
candidates.map(&:to_sym)
|
111
112
|
end
|
112
113
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
|
1
|
+
# Copyright (C) 2011-2012 RightScale, Inc, All Rights Reserved Worldwide.
|
2
2
|
#
|
3
3
|
# THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
|
4
4
|
# AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
|
@@ -20,8 +20,22 @@ module RightConf
|
|
20
20
|
def init
|
21
21
|
@flavor = 'mac_os_x'
|
22
22
|
@release = `sw_vers -productVersion`
|
23
|
+
distros.keys.each do |k|
|
24
|
+
if @release =~ /^10\.#{k}\.[0-9]+/
|
25
|
+
@flavor = distros[k]
|
26
|
+
return
|
27
|
+
end
|
28
|
+
end
|
23
29
|
end
|
24
30
|
|
31
|
+
# Mac OS X distros used to setup 'flavor'
|
32
|
+
def distros
|
33
|
+
{ 5 => 'leopard',
|
34
|
+
6 => 'snow leopard',
|
35
|
+
7 => 'lion' }
|
36
|
+
end
|
37
|
+
|
38
|
+
|
25
39
|
end
|
26
40
|
|
27
41
|
end
|
data/lib/rconf/version.rb
CHANGED
data/spec/command_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
|
1
|
+
# Copyright (C) 2011-2012 RightScale, Inc, All Rights Reserved Worldwide.
|
2
2
|
#
|
3
3
|
# THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
|
4
4
|
# AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
|
@@ -22,16 +22,23 @@ describe RightConf::Command do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'should execute' do
|
25
|
-
flexmock(RightConf::Platform.instance).should_receive(:dispatch).with('test', '42', Proc).once.and_return(success_result)
|
25
|
+
flexmock(RightConf::Platform.instance).should_receive(:dispatch).with('test', nil, '42', Proc).once.and_return(success_result)
|
26
26
|
RightConf::Command.execute('test', '42')
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'should report fatal errors when required to' do
|
30
|
-
flexmock(RightConf::Platform.instance).should_receive(:dispatch).with('test', '42',
|
30
|
+
flexmock(RightConf::Platform.instance).should_receive(:dispatch).with('test', nil, '42',
|
31
31
|
Proc).once.and_return(failed_result)
|
32
32
|
flexmock(RightConf::Command.instance).should_receive(:report_fatal).once.with("FAILED: 'test 42' returned\n1")
|
33
33
|
RightConf::Command.execute('test', '42', :abort_on_failure => 'FAILED')
|
34
34
|
end
|
35
|
+
|
36
|
+
it 'should setup environment variables' do
|
37
|
+
ENV['THIS_IS_A_TEST_ENV_VALUE'].should be_nil
|
38
|
+
res = RightConf::Command.execute('env', :env => { 'THIS_IS_A_TEST_ENV_VALUE' => '42' })
|
39
|
+
ENV['THIS_IS_A_TEST_ENV_VALUE'].should be_nil
|
40
|
+
res.output.should =~ /^THIS_IS_A_TEST_ENV_VALUE=42$/
|
41
|
+
end
|
35
42
|
|
36
43
|
end
|
37
44
|
|
data/spec/platform_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
|
1
|
+
# Copyright (C) 2011-2012 RightScale, Inc, All Rights Reserved Worldwide.
|
2
2
|
#
|
3
3
|
# THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
|
4
4
|
# AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
|
@@ -13,20 +13,20 @@ require File.join(File.dirname(__FILE__), 'spec_helper')
|
|
13
13
|
|
14
14
|
describe RightConf::Platform do
|
15
15
|
|
16
|
-
|
16
|
+
it 'should try to dispatch using platform family' do
|
17
17
|
def test_amiga(val); val; end
|
18
18
|
flexmock(RightConf::Platform.instance).should_receive(:family).and_return('amiga')
|
19
19
|
RightConf::Platform.dispatch(44) { :test }.should == 44
|
20
20
|
end
|
21
21
|
|
22
|
-
|
22
|
+
it 'should try to dispatch using platform family and flavor' do
|
23
23
|
def test_atari_st(val); val; end
|
24
24
|
flexmock(RightConf::Platform.instance).should_receive(:flavor).and_return('st')
|
25
25
|
flexmock(RightConf::Platform.instance).should_receive(:family).and_return('atari')
|
26
26
|
RightConf::Platform.dispatch(43) { :test }.should == 43
|
27
27
|
end
|
28
28
|
|
29
|
-
it 'should try to dispatch using platform family, flavor and release' do
|
29
|
+
it 'should try to dispatch using platform family, flavor and release' do
|
30
30
|
def test_commodore_c_64(val); val; end
|
31
31
|
flexmock(RightConf::Platform.instance).should_receive(:release).and_return('64')
|
32
32
|
flexmock(RightConf::Platform.instance).should_receive(:flavor).and_return('c')
|
@@ -34,4 +34,10 @@ it 'should try to dispatch using platform family, flavor and release' do
|
|
34
34
|
RightConf::Platform.dispatch(42) { :test }.should == 42
|
35
35
|
end
|
36
36
|
|
37
|
+
it 'should default to no suffix' do
|
38
|
+
def test(val); val; end
|
39
|
+
flexmock(RightConf::Platform.instance).should_receive(:family).and_return('non-existent')
|
40
|
+
RightConf::Platform.dispatch(41) { :test }.should == 41
|
41
|
+
end
|
42
|
+
|
37
43
|
end
|
data/spec/profile_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
|
1
|
+
# Copyright (C) 2011-2012 RightScale, Inc, All Rights Reserved Worldwide.
|
2
2
|
#
|
3
3
|
# THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
|
4
4
|
# AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
|
@@ -20,14 +20,18 @@ describe RightConf::Profile do
|
|
20
20
|
|
21
21
|
it 'should reset when forcing checks' do
|
22
22
|
flexmock(RightConf::Profile.instance).should_receive(:reset).once
|
23
|
+
old_check = RightConf::Profile.instance.instance_variable_get(:@force_check)
|
23
24
|
RightConf::Profile.force_check
|
24
25
|
RightConf::Profile.force_check?.should be_true
|
26
|
+
RightConf::Profile.instance.instance_variable_set(:@force_check, old_check)
|
25
27
|
end
|
26
28
|
|
27
29
|
it 'should reset when forcing re-configuration' do
|
28
30
|
flexmock(RightConf::Profile.instance).should_receive(:reset).once
|
31
|
+
old_reconfigure = RightConf::Profile.instance.instance_variable_get(:@force_reconfigure)
|
29
32
|
RightConf::Profile.force_reconfigure
|
30
33
|
RightConf::Profile.force_reconfigure?.should be_true
|
34
|
+
RightConf::Profile.instance.instance_variable_set(:@force_reconfigure, old_reconfigure)
|
31
35
|
end
|
32
36
|
|
33
37
|
end
|
metadata
CHANGED
@@ -5,8 +5,9 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 8
|
8
|
-
-
|
9
|
-
|
8
|
+
- 29
|
9
|
+
segments_generated: true
|
10
|
+
version: 0.8.29
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Raphael Simon
|
@@ -14,37 +15,37 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2012-01-
|
18
|
+
date: 2012-01-29 00:00:00 -08:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
prerelease: false
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
-
none: false
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
25
23
|
requirements:
|
26
24
|
- - ~>
|
27
25
|
- !ruby/object:Gem::Version
|
28
26
|
segments:
|
29
27
|
- 2
|
30
28
|
- 5
|
29
|
+
segments_generated: true
|
31
30
|
version: "2.5"
|
31
|
+
requirement: *id001
|
32
|
+
name: rspec
|
33
|
+
prerelease: false
|
32
34
|
type: :development
|
33
|
-
version_requirements: *id001
|
34
35
|
- !ruby/object:Gem::Dependency
|
35
|
-
|
36
|
-
prerelease: false
|
37
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
-
none: false
|
36
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
37
|
requirements:
|
40
38
|
- - ~>
|
41
39
|
- !ruby/object:Gem::Version
|
42
40
|
segments:
|
43
41
|
- 0
|
44
42
|
- 9
|
43
|
+
segments_generated: true
|
45
44
|
version: "0.9"
|
45
|
+
requirement: *id002
|
46
|
+
name: flexmock
|
47
|
+
prerelease: false
|
46
48
|
type: :development
|
47
|
-
version_requirements: *id002
|
48
49
|
description: |
|
49
50
|
rconf configures the environment for a given application. rconf reads
|
50
51
|
the content of an application configuration file and installs and/or
|
@@ -127,25 +128,25 @@ rdoc_options: []
|
|
127
128
|
require_paths:
|
128
129
|
- lib
|
129
130
|
required_ruby_version: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
131
|
requirements:
|
132
132
|
- - ">="
|
133
133
|
- !ruby/object:Gem::Version
|
134
134
|
segments:
|
135
135
|
- 0
|
136
|
+
segments_generated: true
|
136
137
|
version: "0"
|
137
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
139
|
requirements:
|
140
140
|
- - ">="
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
segments:
|
143
143
|
- 0
|
144
|
+
segments_generated: true
|
144
145
|
version: "0"
|
145
146
|
requirements: []
|
146
147
|
|
147
148
|
rubyforge_project: rconf
|
148
|
-
rubygems_version: 1.3.
|
149
|
+
rubygems_version: 1.3.6
|
149
150
|
signing_key:
|
150
151
|
specification_version: 3
|
151
152
|
summary: Cross platform environment configuration
|