rconf 0.7.6 → 0.7.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -48,7 +48,7 @@ module RightConf
48
48
  # === Return
49
49
  # true:: Always return true
50
50
  def each(&blk)
51
- @configurators.each(&blk)
51
+ @configurators.keys.map(&:to_s).sort.each { |k| blk.call(k, @configurators[k.to_sym]) }
52
52
  true
53
53
  end
54
54
 
@@ -0,0 +1,73 @@
1
+ # Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
2
+ #
3
+ # THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
4
+ # AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
5
+ # reproduction, modification, or disclosure of this program is
6
+ # strictly prohibited. Any use of this program by an authorized
7
+ # licensee is strictly subject to the terms and conditions,
8
+ # including confidentiality obligations, set forth in the applicable
9
+ # License Agreement between RightScale.com, Inc. and
10
+ # the licensee
11
+
12
+ module RightConf
13
+
14
+ class BuildConfigurator
15
+
16
+ include Configurator
17
+
18
+ register :build
19
+
20
+ description 'Builds a repository using the ./configure, make, make install commands'
21
+
22
+ settings :path => 'Path to source files',
23
+ :pre_step => 'Command ran prior to ./configure',
24
+ :message => 'Progress message to display if any while building',
25
+ :configure_opts => 'Hash of options to be given to the configure script. ' +
26
+ 'The keys are the platform families (:darwin, :linux or :windows)',
27
+ :only_if => 'Ruby code that should return true for build to proceed'
28
+
29
+ validate_has_settings :path
30
+
31
+ # Run command line
32
+ #
33
+ # === Return
34
+ # true:: Always return true
35
+ def run
36
+ if only_if.nil? || instance_eval(only_if)
37
+ message("Building #{path}") if message.nil?
38
+ report_check message
39
+ Dir.chdir(path) do
40
+ Command.execute(*command_args(pre_step)) if pre_step
41
+ opts = configure_opts && configure_opts[Platform.family]
42
+ Command.execute(*command_args("./configure #{opts}"))
43
+ Command.execute(*command_args('make'))
44
+ report_success
45
+ report("Please enter you password to run the install step")
46
+ Command.sudo('echo')
47
+ report_check 'Installing'
48
+ Command.sudo(*command_args('make install'))
49
+ end
50
+ report_success
51
+ end
52
+ true
53
+ end
54
+
55
+ protected
56
+
57
+ # Build arguments for Command.execute from command line
58
+ #
59
+ # === Arguments
60
+ # command(String):: Command line to run
61
+ #
62
+ # === Return
63
+ # args(Array):: Array of arguments to be passed to Command.execute
64
+ def command_args(command)
65
+ args = command.split(' ').compact
66
+ args += [ { :abort_on_failure => "Failed to run #{command.rstrip}" } ]
67
+ end
68
+
69
+ end
70
+ end
71
+
72
+
73
+
@@ -0,0 +1,46 @@
1
+ # Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
2
+ #
3
+ # THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
4
+ # AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
5
+ # reproduction, modification, or disclosure of this program is
6
+ # strictly prohibited. Any use of this program by an authorized
7
+ # licensee is strictly subject to the terms and conditions,
8
+ # including confidentiality obligations, set forth in the applicable
9
+ # License Agreement between RightScale.com, Inc. and
10
+ # the licensee
11
+
12
+ module RightConf
13
+
14
+ class ExecuteConfigurator
15
+
16
+ include Configurator
17
+
18
+ register :execute
19
+
20
+ description 'Run arbitraty shell commands'
21
+
22
+ settings :command_line => 'Command line to run',
23
+ :message => 'Progress message to display if any while command is running',
24
+ :abort_on_failure => 'Message to display when aborting configuration if command fails. ' +
25
+ 'Do not abort if not set'
26
+
27
+ validate_has_settings :command_line
28
+
29
+ # Run command line
30
+ #
31
+ # === Return
32
+ # true:: Always return true
33
+ def run
34
+ report_check message if message
35
+ args = command_line.split(' ')
36
+ args += [ { :abort_on_failure => abort_on_failure } ] if abort_on_failure
37
+ Command.execute(*args)
38
+ report_success if message
39
+ true
40
+ end
41
+
42
+ end
43
+ end
44
+
45
+
46
+
@@ -19,38 +19,33 @@ module RightConf
19
19
 
20
20
  description 'Clone git repository and build if needed'
21
21
 
22
- settings :repo => 'git repo URL',
23
- :tag => 'git tag or branch or sha that should be checked out',
24
- :install_path => 'Path where git repo should be cloned to',
25
- :build_commands => 'Comma separated list of commands to run in repo after clone',
26
- :only_if => 'Ruby lambda expression that should return true to proceed ' +
27
- 'with the cloning / build if defined'
22
+ settings :repo => 'git repo URL',
23
+ :path => 'Path where git repo should be cloned to',
24
+ :tag => 'git tag or branch or sha that should be checked out ("master" by default)'
28
25
 
29
- validate_has_settings :repo, :install_path
26
+ validate_has_settings :repo, :path
30
27
 
31
28
  # Clone git repo and run build commands if given
32
29
  #
33
30
  # === Return
34
31
  # true:: Always return true
35
32
  def run
36
- if only_if.nil? || only_if.call
37
- report_check("Cloning #{repo} into #{install_path}")
38
- if File.exist?(install_path)
39
- FileUtils.mv(install_path, "#{install_path}_old")
40
- post_note "Had to move pre-existing #{install_path} to #{install_path}_old"
33
+ 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"
41
37
  end
42
- Command.execute('git', 'clone', repo, install_path,
43
- :abort_on_failure => "Failed to clone #{repo} into #{install_path}")
44
- Command.execute('git', 'checkout', tag) if tag
38
+ 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}")
45
43
  report_success
46
- if build_commands
47
- report_check "Building"
48
- Dir.chdir(install_path) do
49
- build_commands.split(',').each do |c|
50
- c.lstrip!
51
- args = c.split(' ') + [ { :abort_on_failure => "#{c} failed" } ]
52
- Command.execute(*args)
53
- end
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}")
54
49
  end
55
50
  report_success
56
51
  end
@@ -58,16 +53,6 @@ module RightConf
58
53
  true
59
54
  end
60
55
 
61
- # Clone on Windows
62
- #
63
- # === Return
64
- # true:: Always return true
65
- def run_windows
66
- # TBD
67
- end
68
-
69
56
  end
70
57
  end
71
58
 
72
-
73
-
@@ -59,8 +59,8 @@ module RightConf
59
59
  end
60
60
  FileUtils.mv(bashrc_path, bashrc_path + '.old')
61
61
  File.open(bashrc_path, 'w') { |f| f.puts content }
62
+ updated = true
62
63
  end
63
- updated = true
64
64
  else
65
65
  report_error "Failed to update bash resource or profile: file not found"
66
66
  end
data/lib/rconf/version.rb CHANGED
@@ -13,7 +13,7 @@ module RightConf
13
13
 
14
14
  MAJOR = 0
15
15
  MINOR = 7
16
- BUILD = 6
16
+ BUILD = 8
17
17
 
18
18
  VERSION = [MAJOR, MINOR, BUILD].map(&:to_s).join('.')
19
19
 
@@ -0,0 +1,41 @@
1
+ # Copyright (C) 2011 RightScale, Inc, All Rights Reserved Worldwide.
2
+ #
3
+ # THIS PROGRAM IS CONFIDENTIAL AND PROPRIETARY TO RIGHTSCALE
4
+ # AND CONSTITUTES A VALUABLE TRADE SECRET. Any unauthorized use,
5
+ # reproduction, modification, or disclosure of this program is
6
+ # strictly prohibited. Any use of this program by an authorized
7
+ # licensee is strictly subject to the terms and conditions,
8
+ # including confidentiality obligations, set forth in the applicable
9
+ # License Agreement between RightScale.com, Inc. and
10
+ # the licensee
11
+
12
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
13
+
14
+ describe RightConf::BuildConfigurator do
15
+
16
+ before(:each) do
17
+ lang = RightConf::Language.parse('build { path "../source" }')
18
+ @configurator = lang.configurators.first
19
+ [:report_check, :report_result, :report_success].each do |meth|
20
+ flexmock(@configurator).should_receive(meth)
21
+ end
22
+ flexmock(@configurator).should_receive(:report_fatal).and_return { |*args| raise args.join(' ') }
23
+ end
24
+
25
+ it 'should build' do
26
+ flexmock(Dir).should_receive(:chdir).with('../source', Proc).once.and_yield
27
+ should_execute('./configure', {:abort_on_failure=>"Failed to run ./configure"}).once.ordered
28
+ should_execute('make', {:abort_on_failure=>"Failed to run make"}).once.ordered
29
+ should_sudo('echo').once.ordered
30
+ should_sudo('make', 'install', {:abort_on_failure=>"Failed to run make install"}).once.ordered
31
+ @configurator.run
32
+ end
33
+
34
+ it 'should honor only_if' do
35
+ @configurator.instance_eval { only_if('false') }
36
+ should_execute.and_return { raise "Command should not execute" }
37
+ @configurator.run
38
+ end
39
+
40
+ end
41
+
@@ -32,23 +32,19 @@ describe RightConf::BundlerConfigurator do
32
32
  end
33
33
 
34
34
  it 'should succeed when bundler succeeds' do
35
- flexmock(RightConf::Command.instance).should_receive(:execute_in_ruby).once.with(
36
- 'bundle', '--version').and_return(success_result('0'))
37
- flexmock(RightConf::Command.instance).should_receive(:execute_in_ruby).once.with(
38
- 'bundle','_0_', 'install', {:abort_on_failure=>"Failed to install gems"}).and_return(success_result)
35
+ should_execute_in_ruby('bundle', '--version').once.and_return(success_result('0'))
36
+ should_execute_in_ruby('bundle','_0_', 'install',
37
+ {:abort_on_failure=>"Failed to install gems"}).once.and_return(success_result)
39
38
  @configurator.run_linux
40
39
  end
41
40
 
42
41
  it 'should install bunlder if needed' do
43
- flexmock(RightConf::Command.instance).should_receive(:execute_in_ruby).twice.with(
44
- 'bundle', '--version').and_return(success_result('1'))
45
- flexmock(RightConf::Command.instance).should_receive(:execute_in_ruby).once.with(
46
- 'bundle','_0_', 'install', {:abort_on_failure=>"Failed to install gems"}).and_return(success_result)
47
- flexmock(RightConf::Command.instance).should_receive(:execute_in_ruby).once.with(
48
- 'gem', 'uninstall', 'bundler', '-a', '-x').and_return(success_result)
49
- flexmock(RightConf::Command.instance).should_receive(:execute_in_ruby).once.with(
50
- 'gem', 'install', 'bundler', '-v', '0', '--no-ri', '--no-rdoc',
51
- {:abort_on_failure=>"Failed to install bundler"}).once.and_return(success_result)
42
+ should_execute_in_ruby('bundle', '--version').twice.and_return(success_result('1'))
43
+ should_execute_in_ruby('bundle','_0_', 'install',
44
+ {:abort_on_failure=>"Failed to install gems"}).once.and_return(success_result)
45
+ should_execute_in_ruby('gem', 'uninstall', 'bundler', '-a', '-x').once.and_return(success_result)
46
+ should_execute_in_ruby('gem', 'install', 'bundler', '-v', '0', '--no-ri', '--no-rdoc',
47
+ {:abort_on_failure=>"Failed to install bundler"}).once.and_return(success_result)
52
48
  @configurator.run_linux
53
49
  end
54
50
 
@@ -14,7 +14,7 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
14
14
  describe RightConf::GitRepoConfigurator do
15
15
 
16
16
  before(:each) do
17
- lang = RightConf::Language.parse('git_repo { repo "git"; install_path "./git" }')
17
+ lang = RightConf::Language.parse('git_repo { repo "git"; path "./git" }')
18
18
  @configurator = lang.configurators.first
19
19
  [:report_check, :report_result, :report_success].each do |meth|
20
20
  flexmock(@configurator).should_receive(meth)
@@ -24,24 +24,34 @@ describe RightConf::GitRepoConfigurator do
24
24
  end
25
25
 
26
26
  it 'should clone' do
27
- flexmock(RightConf::Command.instance).should_receive(:execute).with('git', 'clone', 'git', './git', @abf).once
27
+ should_execute('git', 'clone', 'git', './git', @abf).once
28
28
  @configurator.run
29
29
  end
30
30
 
31
- it 'run the build commands' do
32
- @configurator.instance_eval { build_commands('do one, do two') }
33
- flexmock(RightConf::Command.instance).should_receive(:execute).with('git', 'clone', 'git', './git', @abf).once
34
- flexmock(Dir).should_receive(:chdir).with('./git', Proc).once.and_yield
35
- flexmock(RightConf::Command.instance).should_receive(:execute).with('do', 'one', :abort_on_failure => 'do one failed').once
36
- flexmock(RightConf::Command.instance).should_receive(:execute).with('do', 'two', :abort_on_failure => 'do two failed').once
31
+ it 'should checkout the right tag' do
32
+ @configurator.instance_eval { tag('tag') }
33
+ should_execute('git', 'clone', 'git', './git', @abf).once
34
+ flexmock(Dir).should_receive(:chdir).with('./git', Proc).and_yield
35
+ should_execute('git', 'checkout', 'tag', {:abort_on_failure=>"Failed to checkout tag"}).once
37
36
  @configurator.run
38
37
  end
39
38
 
40
- it 'should honor only_if' do
41
- @configurator.instance_eval { only_if(lambda { false }) }
42
- flexmock(RightConf::Command.instance).should_receive(:execute).and_return { raise "Command should not execute" }
39
+ it 'should skip checkout if directory already exists and contains a .git subdirectory' do
40
+ flexmock(File).should_receive(:exist?).with('./git').twice.and_return(true)
41
+ flexmock(File).should_receive(:exist?).with('./git/.git').once.and_return(true)
42
+ should_execute.and_return { raise 'Command.execute should not be called' }
43
+ @configurator.run
44
+ end
45
+
46
+ it 'should move directory if already exists but not a git repo' do
47
+ flexmock(File).should_receive(:exist?).with('./git').once.ordered.and_return(true)
48
+ flexmock(File).should_receive(:exist?).with('./git/.git').once.ordered.and_return(false)
49
+ flexmock(File).should_receive(:exist?).with('./git').once.ordered.and_return(false)
50
+ flexmock(FileUtils).should_receive(:mv).once
51
+ should_execute('git', 'clone', 'git', './git', @abf).once
43
52
  @configurator.run
44
53
  end
45
54
 
46
55
  end
47
56
 
57
+
@@ -29,53 +29,36 @@ describe RightConf::RubyConfigurator do
29
29
  end
30
30
 
31
31
  it 'should succeed on linux when rvm succeeds' do
32
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
33
- 'rvm', '--version').and_return(success_result("rvm #{RVM_VERSION}"))
34
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
35
- 'rvm', 'list').and_return(success_result("=> rvm #{RVM_VERSION}"))
36
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
37
- 'rvm', 'use', '0').and_return(success_result('Using '))
38
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
39
- 'rvm', '0@', 'gem', '--version').and_return(success_result('1'))
32
+ should_execute('rvm', '--version').once.and_return(success_result("rvm #{RVM_VERSION}"))
33
+ should_execute('rvm', 'list').once.and_return(success_result("=> rvm #{RVM_VERSION}"))
34
+ should_execute('rvm', 'use', '0').once.and_return(success_result('Using '))
35
+ should_execute('rvm', '0@', 'gem', '--version').once.and_return(success_result('1'))
40
36
  @configurator.run_linux
41
37
  end
42
38
 
43
39
  it 'should install rvm if needed' do
44
40
  rvm_tar = "rvm-#{RVM_VERSION}.tar.gz"
45
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
46
- 'rvm', '--version').and_return(success_result("rvm"))
47
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
48
- 'rvm', 'list').and_return(success_result("=> rvm #{RVM_VERSION}"))
49
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
50
- 'curl', '-O', '-f',
51
- "http://rvm.beginrescueend.com/releases/#{rvm_tar}",
52
- {:abort_on_failure=>"Failed to download rvm #{RVM_VERSION}"}).and_return(success_result)
53
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
54
- 'tar', 'zxf', rvm_tar,
55
- {:abort_on_failure=>"Failed to extract rvm tgz from #{File.expand_path(File.join(File.dirname(__FILE__), '..', '..', "rvm-#{RVM_VERSION}.tar.gz"))}"}).and_return(success_result)
41
+ should_execute('rvm', '--version').once.and_return(success_result("rvm"))
42
+ should_execute('rvm', 'list').once.and_return(success_result("=> rvm #{RVM_VERSION}"))
43
+ should_execute('curl', '-O', '-f', "http://rvm.beginrescueend.com/releases/#{rvm_tar}",
44
+ {:abort_on_failure=>"Failed to download rvm #{RVM_VERSION}"}).once.and_return(success_result)
45
+ should_execute('tar', 'zxf', rvm_tar,
46
+ {:abort_on_failure=>"Failed to extract rvm tgz from #{File.expand_path(File.join(File.dirname(__FILE__), '..', '..', "rvm-#{RVM_VERSION}.tar.gz"))}"}).once.and_return(success_result)
56
47
  flexmock(Dir).should_receive(:chdir).and_yield
57
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
58
- './install', {:abort_on_failure=>"Failed to install rvm #{RVM_VERSION}"}).and_return(success_result)
59
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
60
- 'rvm', 'use', '0').and_return(success_result('Using '))
61
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
62
- 'rvm', '0@', 'gem', '--version').and_return(success_result('1'))
48
+ should_execute('./install', {:abort_on_failure=>"Failed to install rvm #{RVM_VERSION}"}).once.and_return(success_result)
49
+ should_execute('rvm', 'use', '0').once.and_return(success_result('Using '))
50
+ should_execute('rvm', '0@', 'gem', '--version').once.and_return(success_result('1'))
63
51
  flexmock(@configurator).should_receive(:setup_bashrc).once.and_return(true)
64
52
  @configurator.run_linux
65
53
  end
66
54
 
67
55
  it 'should install rubygems if needed' do
68
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
69
- 'rvm', '--version').and_return(success_result("rvm #{RVM_VERSION}"))
70
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
71
- 'rvm', 'list').and_return(success_result("=> rvm #{RVM_VERSION}"))
72
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
73
- 'rvm', 'use', '0').and_return(success_result('Using '))
74
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
75
- 'rvm', '0@', 'gem', '--version').and_return(success_result('0'))
76
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
77
- 'rvm', '0@', 'rubygems', '1',
78
- {:abort_on_failure=>'Failed to install rubygems'}).and_return(success_result)
56
+ should_execute('rvm', '--version').once.and_return(success_result("rvm #{RVM_VERSION}"))
57
+ should_execute('rvm', 'list').once.and_return(success_result("=> rvm #{RVM_VERSION}"))
58
+ should_execute('rvm', 'use', '0').once.and_return(success_result('Using '))
59
+ should_execute('rvm', '0@', 'gem', '--version').once.and_return(success_result('0'))
60
+ should_execute('rvm', '0@', 'rubygems', '1',
61
+ {:abort_on_failure=>'Failed to install rubygems'}).once.and_return(success_result)
79
62
  @configurator.run_linux
80
63
  end
81
64
 
data/spec/spec_helper.rb CHANGED
@@ -19,3 +19,36 @@ RSpec.configure do |c|
19
19
  c.mock_with(:flexmock)
20
20
  end
21
21
 
22
+ # Helper method to mock Command.execute
23
+ #
24
+ # === Parameters
25
+ # Parameters are passed through to flexmock 'with' method
26
+ #
27
+ # === Return
28
+ # mock(Flexmock):: Corresponding flexmock instance
29
+ def should_execute(*with)
30
+ mock = flexmock(RightConf::Command.instance).should_receive(:execute).with(*with)
31
+ end
32
+
33
+ # Helper method to mock Command.execute_in_ruby
34
+ #
35
+ # === Parameters
36
+ # Parameters are passed through to flexmock 'with' method
37
+ #
38
+ # === Return
39
+ # mock(Flexmock):: Corresponding flexmock instance
40
+ def should_execute_in_ruby(*with)
41
+ mock = flexmock(RightConf::Command.instance).should_receive(:execute_in_ruby).with(*with)
42
+ end
43
+
44
+ # Helper method to mock Command.sudo
45
+ #
46
+ # === Parameters
47
+ # Parameters are passed through to flexmock 'with' method
48
+ #
49
+ # === Return
50
+ # mock(Flexmock):: Corresponding flexmock instance
51
+ def should_sudo(*with)
52
+ mock = flexmock(RightConf::Command.instance).should_receive(:sudo).with(*with)
53
+ end
54
+
@@ -26,25 +26,21 @@ describe RightConf::PackageInstaller do
26
26
  it 'should install packages on Ubuntu' do
27
27
  flexmock(RightConf::Platform.instance).should_receive(:family).and_return(:linux)
28
28
  flexmock(RightConf::Platform.instance).should_receive(:flavor).and_return('ubuntu')
29
- flexmock(RightConf::Command.instance).should_receive(:sudo).once.with(
30
- 'apt-get', 'install', '-y', 'deb1', 'deb2').and_return(success_result)
29
+ should_sudo('apt-get', 'install', '-y', 'deb1', 'deb2').once.and_return(success_result)
31
30
  RightConf::PackageInstaller.install(['deb1', 'deb2'])
32
31
  end
33
32
 
34
33
  it 'should install packages on Centos' do
35
34
  flexmock(RightConf::Platform.instance).should_receive(:family).and_return(:linux)
36
35
  flexmock(RightConf::Platform.instance).should_receive(:flavor).and_return('centos')
37
- flexmock(RightConf::Command.instance).should_receive(:sudo).once.with(
38
- 'yum', 'install', '-y', 'cent1', 'cent2').and_return(success_result)
36
+ should_sudo('yum', 'install', '-y', 'cent1', 'cent2').once.and_return(success_result)
39
37
  RightConf::PackageInstaller.install(['cent1', 'cent2'])
40
38
  end
41
39
 
42
40
  it 'should install packages on Darwin' do
43
41
  flexmock(RightConf::Platform.instance).should_receive(:family).and_return(:darwin)
44
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
45
- 'brew', 'install', 'mac1').and_return(success_result)
46
- flexmock(RightConf::Command.instance).should_receive(:execute).once.with(
47
- 'brew', 'install', 'mac2').and_return(success_result)
42
+ should_execute('brew', 'install', 'mac1').once.and_return(success_result)
43
+ should_execute('brew', 'install', 'mac2').once.and_return(success_result)
48
44
  RightConf::PackageInstaller.install(['mac1', 'mac2'])
49
45
  end
50
46
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rconf
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.7.6
5
+ version: 0.7.8
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-30 00:00:00 -07:00
13
+ date: 2011-03-31 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -74,8 +74,10 @@ files:
74
74
  - lib/rconf/command.rb
75
75
  - lib/rconf/configurator.rb
76
76
  - lib/rconf/configurator_registry.rb
77
+ - lib/rconf/configurators/build_configurator.rb
77
78
  - lib/rconf/configurators/bundler_configurator.rb
78
79
  - lib/rconf/configurators/cassandra_configurator.rb
80
+ - lib/rconf/configurators/execute_configurator.rb
79
81
  - lib/rconf/configurators/git_repo_configurator.rb
80
82
  - lib/rconf/configurators/mercurial_configurator.rb
81
83
  - lib/rconf/configurators/packages_configurator.rb
@@ -101,6 +103,7 @@ files:
101
103
  - rconf.rconf
102
104
  - spec/command_spec.rb
103
105
  - spec/configurator_spec.rb
106
+ - spec/configurators/build_configurator_spec.rb
104
107
  - spec/configurators/bundler_configurator_spec.rb
105
108
  - spec/configurators/git_repo_configurator_spec.rb
106
109
  - spec/configurators/packages_configurator_spec.rb
@@ -146,6 +149,7 @@ summary: Cross platform environment configuration
146
149
  test_files:
147
150
  - spec/command_spec.rb
148
151
  - spec/configurator_spec.rb
152
+ - spec/configurators/build_configurator_spec.rb
149
153
  - spec/configurators/bundler_configurator_spec.rb
150
154
  - spec/configurators/git_repo_configurator_spec.rb
151
155
  - spec/configurators/packages_configurator_spec.rb