rconf 0.8.3 → 0.8.4

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/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