rconf 0.8.3 → 0.8.4

Sign up to get free protection for your applications and to get access to all the features.
data/bin/rconf CHANGED
@@ -37,8 +37,9 @@ where [options] are:
37
37
  opt :remove, 'Remove rconf from all gemsets'
38
38
  opt :config, 'Set path to configuration file', :type => :string
39
39
  opt :output, 'Output file (output to STDOUT by default)', :type => :string
40
- opt :force, 'Run rconf even if configuration file has not changed'
41
- opt :verbose, 'Print debug output'
40
+ opt :reconfigure, 'Bypass all checks and force configuration'
41
+ opt :force, 'Run rconf even if configuration file has not changed'
42
+ opt :verbose,'Print debug output'
42
43
  end
43
44
  if opts[:config].nil? && !opts[:configurators] && !opts[:update] && !opts[:remove]
44
45
  opts[:config] = Dir["./*#{CONFIG_EXTENSION}"]
@@ -183,7 +184,8 @@ where [options] are:
183
184
  # === Return
184
185
  # true:: Always return true
185
186
  def configure(options)
186
- Profile.force if options[:force]
187
+ Profile.force_check if options[:force]
188
+ Profile.force_reconfigure if options[:reconfigure]
187
189
  ProgressReporter.report_to_stdout
188
190
  ProgressReporter.report_to_file(options[:output]) if options[:output]
189
191
  begin
@@ -207,7 +209,7 @@ where [options] are:
207
209
  end
208
210
  rescue Exception => e
209
211
  raise if e.is_a?(SystemExit)
210
- report_fatal("Execution failed with exception '#{e.message.red}'\n#{e.backtrace.join("\n").grey}")
212
+ report_fatal("Execution failed with exception '#{e.message.red}'\n#{e.backtrace.join("\n")}")
211
213
  ensure
212
214
  lang.configurators.each { |c| report("\n!!NOTE: #{c.post_note}\n".green) if c.post_note }
213
215
  end
data/lib/rconf/command.rb CHANGED
@@ -37,8 +37,8 @@ module RightConf
37
37
  end
38
38
  res = Platform.dispatch(command, *args) { :execute }
39
39
  if @verbose
40
- msg = (([command] + args).compact.join(' ') + ' => ' +
41
- res.status.to_s + ': ' + res.output).grey
40
+ msg = ([command] + args).compact.join(' ') + ' => ' +
41
+ res.status.to_s + ': ' + res.output
42
42
  report(msg)
43
43
  end
44
44
  if !res.success? && msg = opts[:abort_on_failure]
@@ -111,6 +111,15 @@ module RightConf
111
111
  error
112
112
  end
113
113
 
114
+ # Check system to determine whether configurator needs to run
115
+ #
116
+ # === Return
117
+ # true:: If configurator needs to run
118
+ # false:: Otherwise
119
+ def check
120
+ Platform.dispatch { :check }
121
+ end
122
+
114
123
  # Run configurator for current platform
115
124
  #
116
125
  # === Parameters
@@ -119,15 +128,14 @@ module RightConf
119
128
  # === Return
120
129
  # true:: Always return true
121
130
  def run(*args)
122
- key = "#{self.class.key}-#{@index}"
123
- sha = Profile.configurator_signature(key)
124
- sig = signature
125
- if sha != sig
126
- if only_if.nil? || instance_eval(only_if) || Profile.force?
131
+ key = "#{self.class.key}-#{@index}"
132
+ sha = Profile.configurator_signature(key)
133
+ sig = signature
134
+ if Profile.force_reconfigure? ||
135
+ (Profile.force_check? || sha != sig && (only_if.nil? || instance_eval(only_if))) && !check
127
136
  Platform.dispatch(*args) { :run }
128
137
  Profile.set_configurator_signature(key, sig)
129
138
  end
130
- end
131
139
  true
132
140
  end
133
141
 
@@ -29,6 +29,16 @@ module RightConf
29
29
 
30
30
  validate_has_settings :path
31
31
 
32
+ # No way to check, return false
33
+ #
34
+ # === Return
35
+ # false:: Always return false
36
+ def check_linux
37
+ false
38
+ end
39
+ alias :check_darwin :check_linux
40
+ alias :check_windows :check_linux
41
+
32
42
  # Run command line
33
43
  #
34
44
  # === Return
@@ -28,25 +28,41 @@ module RightConf
28
28
 
29
29
  validate_has_settings :version
30
30
 
31
- # Install bundler if needed and run bundle install
31
+ # Check whether bundler is already installed
32
32
  #
33
33
  # === Return
34
- # true:: Always return true
35
- def run_linux
34
+ # true:: If bundler is already installed
35
+ # false:: Otherwise
36
+ def check_linux
36
37
  report_check("Checking for bundler #{version}")
37
38
  res = Command.execute_in_ruby('bundle', '--version')
38
39
  success = (res.output =~ /#{version}/)
39
40
  report_result(success)
40
- unless success
41
- install_bundler
42
- report_check('Installing gems')
43
- options = [ "_#{version}_", 'install' ]
44
- options << "--without=#{exclusions.delete(' ')}" unless exclusions.nil?
45
- options += [ '--path', bundle_path ] unless bundle_path.nil?
46
- options << { :abort_on_failure => 'Failed to install gems' }
47
- res = Command.execute_in_ruby('bundle', *options)
48
- report_success
49
- end
41
+ success
42
+ end
43
+ alias :check_darwin :check_linux
44
+
45
+ # Not implemented on windows
46
+ #
47
+ # === Raise
48
+ # (Exception):: Always raise
49
+ def check_windows
50
+ raise "Bundler is not supported on Windows!"
51
+ end
52
+
53
+ # Install bundler if needed and run bundle install
54
+ #
55
+ # === Return
56
+ # true:: Always return true
57
+ def run_linux
58
+ install_bundler
59
+ report_check('Installing gems')
60
+ options = [ "_#{version}_", 'install' ]
61
+ options << "--without=#{exclusions.delete(' ')}" unless exclusions.nil?
62
+ options += [ '--path', bundle_path ] unless bundle_path.nil?
63
+ options << { :abort_on_failure => 'Failed to install gems' }
64
+ res = Command.execute_in_ruby('bundle', *options)
65
+ report_success
50
66
  true
51
67
  end
52
68
  alias :run_darwin :run_linux
@@ -71,7 +87,7 @@ module RightConf
71
87
  def install_bundler
72
88
  res = Command.execute_in_ruby('bundle', '--version')
73
89
  exists = res.success? && res.output !~ /exec: bundle: not found/
74
- if exists
90
+ if exists && res.output !~ /#{version}/
75
91
  report_check('Uninstalling existing versions of bundler')
76
92
  Command.execute_in_ruby('gem', 'uninstall', 'bundler', '-a', '-x')
77
93
  report_success
@@ -29,6 +29,27 @@ module RightConf
29
29
 
30
30
  validate_has_settings :version
31
31
 
32
+ # Check whether Cassandra is installed
33
+ #
34
+ # === Return
35
+ # true:: If Cassandra is installed
36
+ # false:: Otherwise
37
+ def check_linux
38
+ report_check('Checking for Cassandra')
39
+ installed = Command.execute('cassandra', '-h').success?
40
+ report_result(installed)
41
+ installed
42
+ end
43
+ alias :check_darwin :check_linux
44
+
45
+ # Check on windows
46
+ #
47
+ # === Return
48
+ # true:: Always return true
49
+ def check_windows
50
+ true
51
+ end
52
+
32
53
  # Install Linux Mercurial package
33
54
  #
34
55
  # === Return
@@ -36,26 +57,24 @@ module RightConf
36
57
  def run_linux
37
58
  install_path(default_install_path) if install_path.nil?
38
59
  abort_on_failure(true) if abort_on_failure.nil?
39
- unless cassandra_installed
40
- report_check('Installing Cassandra')
41
- url = SOURCE_BASE_URL.gsub('VERSION', version)
42
- if File.exist?(install_path)
43
- FileUtils.rm_rf("#{install_path}_old")
44
- FileUtils.mv(install_path, "#{install_path}_old")
45
- post_note "Had to move #{install_path} to #{install_path}_old"
46
- end
47
- FileUtils.mkdir_p(install_path)
48
- Dir.chdir(install_path) do
49
- Command.execute('curl', '-O', '-f', url, abort_option('Failed to download Cassandra')) unless File.exist?(File.join(install_path, File.basename(url)))
50
- Command.execute('tar', 'xvzf', File.basename(url), abort_option('Failed to untar Cassandra'))
51
- end
52
- bin_path = File.join(install_path, "apache-cassandra-#{version}", 'bin')
53
- if EnvironmentUpdater.update("PATH=$PATH:#{bin_path}", ['PATH'])
54
- post_note 'Cassandra was installed, please reload your shell to activate it and re-run rconf'
55
- aborting(true)
56
- end
57
- report_success
60
+ report_check('Installing Cassandra')
61
+ url = SOURCE_BASE_URL.gsub('VERSION', version)
62
+ if File.exist?(install_path)
63
+ FileUtils.rm_rf("#{install_path}_old")
64
+ FileUtils.mv(install_path, "#{install_path}_old")
65
+ post_note "Had to move #{install_path} to #{install_path}_old"
66
+ end
67
+ FileUtils.mkdir_p(install_path)
68
+ Dir.chdir(install_path) do
69
+ Command.execute('curl', '-O', '-f', url, abort_option('Failed to download Cassandra')) unless File.exist?(File.join(install_path, File.basename(url)))
70
+ Command.execute('tar', 'xvzf', File.basename(url), abort_option('Failed to untar Cassandra'))
58
71
  end
72
+ bin_path = File.join(install_path, "apache-cassandra-#{version}", 'bin')
73
+ if EnvironmentUpdater.update("PATH=$PATH:#{bin_path}", ['PATH'])
74
+ post_note 'Cassandra was installed, please reload your shell to activate it and re-run rconf'
75
+ aborting(true)
76
+ end
77
+ report_success
59
78
  end
60
79
  alias :run_darwin :run_linux
61
80
 
@@ -69,18 +88,6 @@ module RightConf
69
88
 
70
89
  protected
71
90
 
72
- # Check whether Cassandra is installed
73
- #
74
- # === Return
75
- # true:: If Mercurial is installed
76
- # false:: Otherwise
77
- def cassandra_installed
78
- report_check("Checking for Cassandra")
79
- installed = Command.execute('cassandra', '-h').success?
80
- report_result(installed)
81
- installed
82
- end
83
-
84
91
  # Retrieve default install path
85
92
  # Try /opt/cassandra and revert to ~/cassandra if not writable
86
93
  #
@@ -26,6 +26,16 @@ module RightConf
26
26
 
27
27
  validate_has_settings :command_line
28
28
 
29
+ # No way to check, return false
30
+ #
31
+ # === Return
32
+ # false:: Always return false
33
+ def check_linux
34
+ false
35
+ end
36
+ alias :check_darwin :check_linux
37
+ alias :check_windows :check_linux
38
+
29
39
  # Run command line
30
40
  #
31
41
  # === Return
@@ -24,6 +24,17 @@ module RightConf
24
24
  :tag => 'git tag or branch or sha that should be checked out ("master" by default)'
25
25
 
26
26
  validate_has_settings :repo, :path
27
+
28
+ # Check whether repo was already cloned
29
+ #
30
+ # === Return
31
+ # true:: If repo was already cloned
32
+ # false:: Otherwise
33
+ def check_linux
34
+ File.exist?(path) && File.exist?(File.join(path, '.git'))
35
+ end
36
+ alias :check_darwin :check_linux
37
+ alias :check_windows :check_linux
27
38
 
28
39
  # Clone git repo and run build commands if given
29
40
  #
@@ -31,24 +42,20 @@ module RightConf
31
42
  # true:: Always return true
32
43
  def run_linux
33
44
  if File.exist?(path)
34
- unless File.exist?(File.join(path, '.git'))
35
- FileUtils.mv(path, "#{path}_old")
36
- post_note "Had to move #{path} to #{path}_old"
37
- end
45
+ FileUtils.mv(path, "#{path}_old")
46
+ post_note "Had to move #{path} to #{path}_old"
38
47
  end
39
- unless File.exist?(path)
40
- report_check("Cloning #{repo} into #{path}")
41
- Command.execute('git', 'clone', repo, path,
42
- :abort_on_failure => "Failed to clone #{repo} into #{path}")
43
- report_success
44
- if tag
45
- report_check("Checking out #{tag}")
46
- Dir.chdir(path) do
47
- Command.execute('git', 'checkout', tag,
48
- :abort_on_failure => "Failed to checkout #{tag}")
49
- end
50
- report_success
48
+ report_check("Cloning #{repo} into #{path}")
49
+ Command.execute('git', 'clone', repo, path,
50
+ :abort_on_failure => "Failed to clone #{repo} into #{path}")
51
+ report_success
52
+ if tag
53
+ report_check("Checking out #{tag}")
54
+ Dir.chdir(path) do
55
+ Command.execute('git', 'checkout', tag,
56
+ :abort_on_failure => "Failed to checkout #{tag}")
51
57
  end
58
+ report_success
52
59
  end
53
60
  true
54
61
  end
@@ -24,6 +24,20 @@ module RightConf
24
24
 
25
25
  settings :abort_on_failure => 'Whether to abort if Mercurial failed to install (false by default)'
26
26
 
27
+ # Check whether Mercurial is installed
28
+ #
29
+ # === Return
30
+ # true:: If Mercurial is installed
31
+ # false:: Otherwise
32
+ def check_linux
33
+ report_check("Checking for Mercurial")
34
+ installed = Command.execute('hg', '--version').success?
35
+ report_result(installed)
36
+ installed
37
+ end
38
+ alias :check_darwin :check_linux
39
+ alias :check_windows :check_linux
40
+
27
41
  # Install Linux Mercurial package
28
42
  #
29
43
  # === Return
@@ -72,18 +86,6 @@ module RightConf
72
86
 
73
87
  protected
74
88
 
75
- # Check whether Mercurial is installed
76
- #
77
- # === Return
78
- # true:: If Mercurial is installed
79
- # false:: Otherwise
80
- def mercurial_installed
81
- report_check("Checking for Mercurial")
82
- installed = Command.execute('hg', '--version').success?
83
- report_result(installed)
84
- installed
85
- end
86
-
87
89
  # Produce abort on failure option
88
90
  #
89
91
  # === Parameters
@@ -25,6 +25,16 @@ module RightConf
25
25
  :darwin => 'Brew packages to be installed on Mac OS X (https://github.com/mxcl/homebrew)',
26
26
  :abort_on_failure => 'Whether to abort if packages failed to install (false by default)'
27
27
 
28
+ # Let package manager check for idempotency, return false
29
+ #
30
+ # === Return
31
+ # false:: Always return false
32
+ def check_linux
33
+ false
34
+ end
35
+ alias :check_darwin :check_linux
36
+ alias :check_windows :check_linux
37
+
28
38
  # Install packages on debian based oses
29
39
  #
30
40
  # === Return
@@ -15,7 +15,7 @@ module RightConf
15
15
 
16
16
  class PassengerConfigurator
17
17
 
18
- PASSENGER_GEM_VERSION = '2.2.15'
18
+ PASSENGER_GEM_VERSION = '3.0.2'
19
19
 
20
20
  DEFAULT_NGINX_INSTALL = ['/opt/nginx', File.join(ENV['HOME'], 'nginx')]
21
21
 
@@ -33,22 +33,44 @@ module RightConf
33
33
  :install_path => 'Path to nginx installation directory, uses /opt/nginx if it ' +
34
34
  'is writable by the current user or ~/nginx otherwise by default'
35
35
 
36
- # Install passenger gem in given ruby then run nginx install script
36
+ # Check that passenger gem is installed and that passenger+nginx is installed
37
37
  #
38
38
  # === Return
39
- # true:: Always return true
40
- def run_linux
39
+ # true:: If both are installed
40
+ # false:: Otherwise
41
+ def check_linux
41
42
  set_defaults
42
43
  report_check("Checking for passenger gem #{gem_version}")
43
44
  res = Command.execute_in_ruby('gem', 'list', 'passenger')
44
45
  success = (res.output =~ /^passenger \(#{gem_version}\)$/)
45
46
  report_result(success)
46
- install_gem unless success
47
- report_check('Checking for passenger+nginx')
48
- res = Command.execute('which', 'nginx').success?
49
- res = File.exists?(File.join(install_path, 'sbin', 'nginx')) unless res
50
- report_result(res)
51
- install_passenger unless res
47
+ if success
48
+ report_check('Checking for passenger+nginx')
49
+ res = Command.execute('which', 'nginx').success?
50
+ res = File.exists?(File.join(install_path, 'sbin', 'nginx')) unless res
51
+ report_result(res)
52
+ success = res
53
+ end
54
+ success
55
+ end
56
+ alias :check_darwin :check_linux
57
+
58
+ # Not implemented on Windows
59
+ #
60
+ # === Raise
61
+ # (Exception):: Always raise
62
+ def check_windows
63
+ raise "Passenger is not supported on Windows!"
64
+ end
65
+
66
+ # Install passenger gem in given ruby then run nginx install script
67
+ #
68
+ # === Return
69
+ # true:: Always return true
70
+ def run_linux
71
+ set_defaults
72
+ install_gem
73
+ install_passenger
52
74
  true
53
75
  end
54
76
  alias :run_darwin :run_linux
@@ -175,7 +197,7 @@ module RightConf
175
197
  # config(String):: Nginx config
176
198
  def nginx_config
177
199
  ruby_bin = Command.execute_in_ruby('which', 'ruby').output.chomp
178
- res = Command.execute_in_ruby('ruby', '-e', "require 'rubygems';puts Gem.source_index.find_name('passenger').detect { |g| g.version.to_s == '#{PASSENGER_GEM_VERSION}' }.full_gem_path",
200
+ res = Command.execute_in_ruby('ruby', '-e', "require 'rubygems';puts Gem.source_index.find_name('passenger').detect { |g| g.version.to_s == '#{gem_version}' }.full_gem_path",
179
201
  :abort_on_failure => 'Could not find passenger gem to build passenger_root')
180
202
  passenger_root = res.output.chomp
181
203
  report_fatal('Could not find passenger gem') if passenger_root.empty?
@@ -32,6 +32,16 @@ module RightConf
32
32
 
33
33
  validate_has_settings :version, :rubygems
34
34
 
35
+ # Let configurator run, it is idempotent
36
+ #
37
+ # === Return
38
+ # false:: Always return false
39
+ def check_linux
40
+ false
41
+ end
42
+ alias :check_darwin :check_linux
43
+ alias :check_windows :check_linux
44
+
35
45
  # Switch to ruby version defined in settings
36
46
  # Use rvm and install it if needed
37
47
  #
data/lib/rconf/profile.rb CHANGED
@@ -76,8 +76,8 @@ module RightConf
76
76
  #
77
77
  # === Return
78
78
  # true:: Always return true
79
- def force
80
- @force = true
79
+ def force_check
80
+ @force_check = true
81
81
  reset
82
82
  end
83
83
 
@@ -86,8 +86,26 @@ module RightConf
86
86
  # === Return
87
87
  # true:: If re-configuration should be forced
88
88
  # false:: Otherwise
89
- def force?
90
- res = @force || false
89
+ def force_check?
90
+ res = @force_check || false
91
+ end
92
+
93
+ # Bypass checks and always reconfigure
94
+ #
95
+ # === Return
96
+ # true:: Always return true
97
+ def force_reconfigure
98
+ @force_reconfigure = true
99
+ reset
100
+ end
101
+
102
+ # Should next configuration bypass checks?
103
+ #
104
+ # === Return
105
+ # true:: If re-configuration should bypass checks
106
+ # false:: Otherwise
107
+ def force_reconfigure?
108
+ res = @force_reconfigure || false
91
109
  end
92
110
 
93
111
  protected
@@ -38,15 +38,14 @@ end
38
38
  # e.g.: puts "Hello".red
39
39
  class String
40
40
  def bold; colorize("\e[1m\e[29m"); end
41
- def grey; colorize("\e[30m"); end
42
- def red; colorize("\e[1m\e[31m"); end
43
- def dark_red; colorize("\e[31m"); end
44
- def green; colorize("\e[1m\e[32m"); end
45
- def dark_green; colorize("\e[32m"); end
46
- def yellow; colorize("\e[1m\e[33m"); end
47
- def blue; colorize("\e[1m\e[34m"); end
48
- def dark_blue; colorize("\e[34m"); end
49
- def pur; colorize("\e[1m\e[35m"); end
41
+ def black; colorize("\e[30m"); end
42
+ def red; colorize("\e[31m"); end
43
+ def green; colorize("\e[32m"); end
44
+ def yellow; colorize("\e[33m"); end
45
+ def blue; colorize("\e[34m"); end
46
+ def purple; colorize("\e[35m"); end
47
+ def cyan; colorize("\e[36m"); end
48
+ def white; colorize("\e[37m"); end
50
49
  def colorize(color_code)
51
50
  # Doesn't work with the Windows prompt...
52
51
  (RightConf::Platform.windows? || !$stdout.isatty) ? to_s : "#{color_code}#{to_s}\e[0m"
data/lib/rconf/version.rb CHANGED
@@ -13,7 +13,7 @@ module RightConf
13
13
 
14
14
  MAJOR = 0
15
15
  MINOR = 8
16
- BUILD = 3
16
+ BUILD = 4
17
17
 
18
18
  VERSION = [MAJOR, MINOR, BUILD].map(&:to_s).join('.')
19
19
 
@@ -21,6 +21,9 @@ describe RightConf::Configurator do
21
21
  def test_setter(value)
22
22
  @custom_setting = value
23
23
  end
24
+ def check_darwin; end
25
+ alias :check_linux :check_darwin
26
+ alias :check_windows :check_darwin
24
27
  def run_darwin; end
25
28
  alias :run_linux :run_darwin
26
29
  alias :run_windows :run_darwin
@@ -55,6 +58,12 @@ describe RightConf::Configurator do
55
58
  @configurator.custom_setting.should == 43
56
59
  end
57
60
 
61
+ it 'should check' do
62
+ flexmock(@configurator).should_receive(:check).and_return(true).once
63
+ flexmock(RightConf::Platform.instance).should_receive(:dispatch).never
64
+ @configurator.run
65
+ end
66
+
58
67
  it 'should validate' do
59
68
  @configurator.validate.should =~ /^Required setting.*missing for configuration/
60
69
  @configurator.instance_eval { required 42 }
@@ -28,11 +28,11 @@ describe RightConf::BundlerConfigurator do
28
28
 
29
29
  it 'should succeed when bundler succeeds' do
30
30
  should_execute_in_ruby('bundle', '--version').once.and_return(success_result('0'))
31
- @configurator.run_linux
31
+ @configurator.check_linux.should be_true
32
32
  end
33
33
 
34
- it 'should install bunlder if needed' do
35
- should_execute_in_ruby('bundle', '--version').twice.and_return(success_result('1'))
34
+ it 'should install bundler if needed' do
35
+ should_execute_in_ruby('bundle', '--version').once.and_return(success_result('1'))
36
36
  should_execute_in_ruby('bundle','_0_', 'install',
37
37
  {:abort_on_failure=>"Failed to install gems"}).once.and_return(success_result)
38
38
  should_execute_in_ruby('gem', 'uninstall', 'bundler', '-a', '-x').once.and_return(success_result)
@@ -19,14 +19,15 @@ describe RightConf::GitRepoConfigurator do
19
19
  end
20
20
 
21
21
  it 'should clone' do
22
- flexmock(File).should_receive(:exist?).with('./git').and_return(false)
22
+ flexmock(File).should_receive(:exist?).with('./git').twice.and_return(false)
23
23
  should_execute('git', 'clone', 'git', './git', @abf).once
24
+ @configurator.check
24
25
  @configurator.run_linux
25
26
  end
26
27
 
27
28
  it 'should checkout the right tag' do
28
- flexmock(File).should_receive(:exist?).with('./git').and_return(false)
29
29
  @configurator.instance_eval { tag('tag') }
30
+ flexmock(File).should_receive(:exist?).with('./git').once.and_return(false)
30
31
  should_execute('git', 'clone', 'git', './git', @abf).once
31
32
  flexmock(Dir).should_receive(:chdir).with('./git', Proc).and_yield
32
33
  should_execute('git', 'checkout', 'tag', {:abort_on_failure=>"Failed to checkout tag"}).once
@@ -34,18 +35,18 @@ describe RightConf::GitRepoConfigurator do
34
35
  end
35
36
 
36
37
  it 'should skip checkout if directory already exists and contains a .git subdirectory' do
37
- flexmock(File).should_receive(:exist?).with('./git').twice.and_return(true)
38
+ flexmock(File).should_receive(:exist?).with('./git').once.and_return(true)
38
39
  flexmock(File).should_receive(:exist?).with('./git/.git').once.and_return(true)
39
- should_execute.and_return { raise 'Command.execute should not be called' }
40
- @configurator.run_linux
40
+ @configurator.check.should be_true
41
41
  end
42
42
 
43
43
  it 'should move directory if already exists but not a git repo' do
44
44
  flexmock(File).should_receive(:exist?).with('./git').once.ordered.and_return(true)
45
45
  flexmock(File).should_receive(:exist?).with('./git/.git').once.ordered.and_return(false)
46
- flexmock(File).should_receive(:exist?).with('./git').once.ordered.and_return(false)
46
+ flexmock(File).should_receive(:exist?).with('./git').once.ordered.and_return(true)
47
47
  flexmock(FileUtils).should_receive(:mv).once
48
48
  should_execute('git', 'clone', 'git', './git', @abf).once
49
+ @configurator.check
49
50
  @configurator.run_linux
50
51
  end
51
52
 
data/spec/profile_spec.rb CHANGED
@@ -18,10 +18,16 @@ describe RightConf::Profile do
18
18
  RightConf::Profile.set_configurator_signature(:test, '42')
19
19
  end
20
20
 
21
+ it 'should reset when forcing checks' do
22
+ flexmock(RightConf::Profile.instance).should_receive(:reset).once
23
+ RightConf::Profile.force_check
24
+ RightConf::Profile.force_check?.should be_true
25
+ end
26
+
21
27
  it 'should reset when forcing re-configuration' do
22
28
  flexmock(RightConf::Profile.instance).should_receive(:reset).once
23
- RightConf::Profile.force
24
- RightConf::Profile.force?.should be_true
29
+ RightConf::Profile.force_reconfigure
30
+ RightConf::Profile.force_reconfigure?.should be_true
25
31
  end
26
32
 
27
33
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rconf
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.8.3
5
+ version: 0.8.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Raphael Simon