rconf 0.6.10 → 0.6.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -39,7 +39,7 @@ module RightConf
39
39
  report_result(success)
40
40
  install_bundler unless success
41
41
  report_check('Installing gems')
42
- options = [ 'install', "_#{version}_" ]
42
+ options = [ "_#{version}_", 'install' ]
43
43
  options << "--without=#{exclusions}" unless exclusions.nil?
44
44
  options << "--path #{bundle_path}" unless bundle_path.nil?
45
45
  options << { :abort_on_failure => 'Failed to install gems' }
@@ -54,7 +54,6 @@ module RightConf
54
54
  when /^Using /
55
55
  report_success
56
56
  check_rvmrc
57
- post_note "Configuration required switching the active ruby\nPlease run " + 'cd ..;cd -'.blue + ' to activate it and re-run rconf'
58
57
  aborting(true)
59
58
  else
60
59
  report_fatal("Failed to use #{version}:\n#{out}")
@@ -92,11 +91,13 @@ module RightConf
92
91
  end
93
92
 
94
93
  # Set command prefix when already configured
94
+ # Re-create .rvmrc if needed
95
95
  #
96
96
  # === Return
97
97
  # true:: Always return true
98
98
  def post_process
99
99
  Command.set_prefix("rvm #{version}@#{gemset} exec --")
100
+ check_rvmrc
100
101
  true
101
102
  end
102
103
 
@@ -128,10 +129,10 @@ module RightConf
128
129
  end
129
130
  Dir.chdir(File.join(rvm_src, "rvm-#{version}")) do
130
131
  Command.execute('./install', :abort_on_failure => "Failed to install rvm #{version}")
131
- setup_bashrc
132
132
  end
133
133
  report_success
134
134
  end
135
+ setup_bashrc
135
136
  true
136
137
  end
137
138
 
@@ -193,6 +194,7 @@ module RightConf
193
194
  # === Return
194
195
  # true:: Always return true
195
196
  def check_rvmrc
197
+ return true if File.exist?('.rvmrc')
196
198
  report_check('Setting up .rvmrc')
197
199
  begin
198
200
  File.open('.rvmrc', 'w') do |f|
@@ -202,6 +204,7 @@ module RightConf
202
204
  end
203
205
  Command.execute('rvm', "#{version}@#{gemset}", 'trust', 'rvmrc')
204
206
  report_success
207
+ post_note "Configuration required switching the active ruby\nPlease run " + 'cd ..;cd -'.blue + ' to activate it and re-run rconf'
205
208
  rescue Exception => e
206
209
  report_failure
207
210
  report_error(e.message)
@@ -220,7 +223,17 @@ module RightConf
220
223
  if bashrc_path
221
224
  content = IO.read(bashrc_path)
222
225
  unless content.include?(rvm_bash_activation)
223
- content = rvm_bash_activation + "\n" + content
226
+ i = content.index(/^\s*PATH=[^$PATH]/)
227
+ if i
228
+ next_line = content.index("\n", i + 1)
229
+ if next_line
230
+ content.insert(next_line + 1, rvm_bash_activation + "\n")
231
+ else
232
+ content += "\n" + rvm_bash_activation
233
+ end
234
+ else
235
+ content = rvm_bash_activation + "\n" + content
236
+ end
224
237
  FileUtils.mv(bashrc_path, bashrc_path + '.old')
225
238
  File.open(bashrc_path, 'w') { |f| f.puts content }
226
239
  post_note 'rvm was installed, please reload your shell to activate it and re-run rconf'
@@ -237,6 +250,7 @@ module RightConf
237
250
  # code(String):: Code that needs to be added to bashrc to activate rvm
238
251
  def rvm_bash_activation
239
252
  code = <<EOS
253
+ export rvm_trust_rvmrcs_flag=1
240
254
  if [[ -n "$PS1" ]]; then
241
255
  if [[ -s $HOME/.rvm/scripts/rvm ]] ; then source $HOME/.rvm/scripts/rvm ; fi
242
256
  fi
data/lib/rconf/version.rb CHANGED
@@ -13,7 +13,7 @@ module RightConf
13
13
 
14
14
  MAJOR = 0
15
15
  MINOR = 6
16
- BUILD = 10
16
+ BUILD = 11
17
17
 
18
18
  VERSION = [MAJOR, MINOR, BUILD].map(&:to_s).join('.')
19
19
 
@@ -29,7 +29,7 @@ describe RightConf::BundlerConfigurator do
29
29
  flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
30
30
  'bundle', '--version').and_return(success_result('0'))
31
31
  flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
32
- 'bundle', 'install', '_0_', {:abort_on_failure=>"Failed to install gems"}).and_return(success_result)
32
+ 'bundle','_0_', 'install', {:abort_on_failure=>"Failed to install gems"}).and_return(success_result)
33
33
  @configurator.run_linux
34
34
  end
35
35
 
@@ -37,7 +37,7 @@ describe RightConf::BundlerConfigurator do
37
37
  flexmock(RightConf::Command.instance).should_receive(:execute).twice.with(
38
38
  'bundle', '--version').and_return(success_result('1'))
39
39
  flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
40
- 'bundle', 'install', '_0_', {:abort_on_failure=>"Failed to install gems"}).and_return(success_result)
40
+ 'bundle','_0_', 'install', {:abort_on_failure=>"Failed to install gems"}).and_return(success_result)
41
41
  flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
42
42
  'gem', 'uninstall', 'bundler', '-a', '-x').and_return(success_result)
43
43
  flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
@@ -55,9 +55,58 @@ describe RightConf::RubyConfigurator do
55
55
  './install', {:abort_on_failure=>"Failed to install rvm #{RVM_VERSION}"}).and_return(success_result)
56
56
  flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
57
57
  'rvm', 'use', '0').and_return(success_result('Using'))
58
+ flexmock(@configurator).should_receive(:setup_bashrc).once.and_return(true)
58
59
  @configurator.run_linux
59
60
  end
60
61
 
61
-
62
+ describe 'bashrc update' do
63
+
64
+ before(:each) do
65
+ flexmock(File).should_receive(:exist?).once.with(File.join(ENV['HOME'], '.bashrc')).once.and_return(true)
66
+ flexmock(FileUtils).should_receive(:mv).and_return(true)
67
+ f = flexmock('f')
68
+ f.should_receive(:puts).and_return { |c| @bashrc_content = c }
69
+ flexmock(File).should_receive(:open).and_yield(f)
70
+ @rvm_bash_activation = @configurator.__send__(:rvm_bash_activation)
71
+ end
72
+
73
+ it 'should install rvm hook in bashrc when not present' do
74
+ flexmock(IO).should_receive(:read).and_return('test')
75
+ @configurator.__send__(:setup_bashrc)
76
+ @bashrc_content.should == "#{@rvm_bash_activation}\ntest"
77
+ end
78
+
79
+ it 'should not install rvm hook in bashrc when present' do
80
+ flexmock(IO).should_receive(:read).and_return('test' + @rvm_bash_activation)
81
+ @configurator.__send__(:setup_bashrc)
82
+ @bashrc_content.should be_nil
83
+ end
84
+
85
+ it 'should install rvm hook after path is set' do
86
+ flexmock(IO).should_receive(:read).and_return(<<-EOS
87
+ echo 'zobi la mouche'
88
+ radio killed the radio star
89
+ #PATH=something
90
+ PATH=$PATH:should be fine
91
+ this should not:
92
+ PATH=something
93
+ AFTER
94
+ EOS
95
+ )
96
+ @configurator.__send__(:setup_bashrc)
97
+ @bashrc_content.should == <<-EOS
98
+ echo 'zobi la mouche'
99
+ radio killed the radio star
100
+ #PATH=something
101
+ PATH=$PATH:should be fine
102
+ this should not:
103
+ PATH=something
104
+ #{@rvm_bash_activation}
105
+ AFTER
106
+ EOS
107
+ end
108
+
109
+ end
110
+
62
111
  end
63
112
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rconf
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.6.10
5
+ version: 0.6.11
6
6
  platform: ruby
7
7
  authors:
8
8
  - Raphael Simon
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-03-11 00:00:00 -08:00
13
+ date: 2011-03-12 00:00:00 -08:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency