rconf 0.6.23 → 0.6.24
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/lib/rconf/command.rb +13 -0
- data/lib/rconf/configurator.rb +1 -0
- data/lib/rconf/configurators/mercurial_configurator.rb +97 -0
- data/lib/rconf/configurators/packages_configurator.rb +19 -22
- data/lib/rconf/configurators/ruby_configurator.rb +2 -2
- data/lib/rconf/support/brew_installer.rb +62 -0
- data/lib/rconf/support/package_installer.rb +87 -0
- data/lib/rconf/version.rb +1 -1
- data/spec/configurators/packages_configurator_spec.rb +8 -5
- data/spec/support/package_installer_spec.rb +52 -0
- metadata +7 -2
data/lib/rconf/command.rb
CHANGED
@@ -44,6 +44,19 @@ module RightConf
|
|
44
44
|
res
|
45
45
|
end
|
46
46
|
|
47
|
+
# Execute given command with given arguments using 'sudo'
|
48
|
+
#
|
49
|
+
# === Parameters
|
50
|
+
# command(String):: Command to run
|
51
|
+
# args(Array):: Command arguments
|
52
|
+
#
|
53
|
+
# === Return
|
54
|
+
# result(CommandResult):: Result of execution (output and exit status)
|
55
|
+
def sudo(*args)
|
56
|
+
args = args.unshift('/usr/bin/sudo')
|
57
|
+
Command.execute(*args)
|
58
|
+
end
|
59
|
+
|
47
60
|
# Execute given command on *nix systems
|
48
61
|
#
|
49
62
|
# === Parameters
|
data/lib/rconf/configurator.rb
CHANGED
@@ -0,0 +1,97 @@
|
|
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 MercurialConfigurator
|
15
|
+
|
16
|
+
MAC_MERCURIAL_URL = 'http://mercurial.berkwood.com/binaries/Mercurial-1.8.1-py2.6-macosx10.6.zip'
|
17
|
+
MAC_MERCURIAL_FILE = 'mercurial-1.8.1_20110310-py2.6-macosx10.6'
|
18
|
+
|
19
|
+
include Configurator
|
20
|
+
|
21
|
+
register :mercurial
|
22
|
+
|
23
|
+
description 'Installs Mercurial'
|
24
|
+
|
25
|
+
settings :abort_on_failure => 'Whether to abort if Mercurial failed to install (false by default)'
|
26
|
+
|
27
|
+
# Install Linux Mercurial package
|
28
|
+
#
|
29
|
+
# === Return
|
30
|
+
# true:: Always return true
|
31
|
+
def run_linux
|
32
|
+
unless mercurial_installed
|
33
|
+
opts = { :report => true }.merge(abort_option('Failed to install Mercurial'))
|
34
|
+
PackageInstaller.install('mercurial', opts)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Brew does not have a package for mercurial :(
|
39
|
+
#
|
40
|
+
# === Return
|
41
|
+
# true:: Always return true
|
42
|
+
def run_darwin
|
43
|
+
unless mercurial_installed
|
44
|
+
report_check('Installing Mercurial')
|
45
|
+
tempdir = File.join(ENV['HOME'], '.rconf', 'temp')
|
46
|
+
FileUtils.mkdir_p(tempdir)
|
47
|
+
Dir.chdir(tempdir) do
|
48
|
+
Command.execute('curl', '-O', '-f', MAC_MERCURIAL_URL,
|
49
|
+
abort_option('Failed to download Mercurial'))
|
50
|
+
Command.execute('unzip', File.basename(MAC_MERCURIAL_URL),
|
51
|
+
abort_option('Failed to unzip Mercurial'))
|
52
|
+
end
|
53
|
+
Dir.chdir(File.join(tempdir, MAC_MERCURIAL_FILE)) do
|
54
|
+
Command.sudo('installer', '-pkg', MAC_MERCURIAL_FILE.gsub('_', '+') + '.mpkg', '-target', '/',
|
55
|
+
abort_option('Failed to install Mercurial'))
|
56
|
+
end
|
57
|
+
report_success
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# Install Windows software
|
62
|
+
#
|
63
|
+
# === Return
|
64
|
+
# true:: Always return true
|
65
|
+
def run_windows
|
66
|
+
# TBD
|
67
|
+
end
|
68
|
+
|
69
|
+
protected
|
70
|
+
|
71
|
+
# Check whether Mercurial is installed
|
72
|
+
#
|
73
|
+
# === Return
|
74
|
+
# true:: If Mercurial is installed
|
75
|
+
# false:: Otherwise
|
76
|
+
def mercurial_installed
|
77
|
+
report_check("Checking for Mercurial")
|
78
|
+
installed = Command.execute('hg', '--version').success?
|
79
|
+
report_result(installed)
|
80
|
+
installed
|
81
|
+
end
|
82
|
+
|
83
|
+
# Produce abort on failure option
|
84
|
+
#
|
85
|
+
# === Parameters
|
86
|
+
# message(String):: Abort message to be used in case abort option should be set
|
87
|
+
#
|
88
|
+
# === Return
|
89
|
+
# {}:: Empty hash if 'abort_on_failure' is notset
|
90
|
+
# opts(Hash):: Abort option with give message otherwise
|
91
|
+
def abort_option(message)
|
92
|
+
opts = abort_on_failure && { :abort_on_failure => message } || {}
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
@@ -22,51 +22,48 @@ module RightConf
|
|
22
22
|
settings :debian => 'Packages to be installed on Debian based Linux',
|
23
23
|
:centos => 'Packages to be installed on RedHat / Centos',
|
24
24
|
:windows => 'Softwared to be downloaded and installed on Windows',
|
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
|
-
# Install debian
|
28
|
+
# Install packages on debian based oses
|
29
29
|
#
|
30
30
|
# === Return
|
31
31
|
# true:: Always return true
|
32
32
|
def run_linux_ubuntu
|
33
|
-
|
34
|
-
|
35
|
-
opts = debian.dup
|
36
|
-
opts << { :abort_on_failure => 'Failed to install packages' } if abort_on_failure
|
37
|
-
Command.execute('sudo', 'apt-get', 'install', '-y', *opts)
|
38
|
-
report_success
|
33
|
+
PackageInstaller.install(debian, options)
|
34
|
+
true
|
39
35
|
end
|
40
36
|
alias :run_linux_debian :run_linux_ubuntu
|
41
37
|
|
42
|
-
# Install
|
38
|
+
# Install packages on centos based oses
|
43
39
|
#
|
44
40
|
# === Return
|
45
41
|
# true:: Always return true
|
46
42
|
def run_linux_centos
|
47
|
-
|
48
|
-
|
49
|
-
opts = centos.dup
|
50
|
-
opts << { :abort_on_failure => 'Failed to install packages' } if abort_on_failure
|
51
|
-
Command.execute('sudo', 'yum', 'install', '-y', *opts)
|
52
|
-
report_success
|
43
|
+
PackageInstaller.install(centos, options)
|
44
|
+
true
|
53
45
|
end
|
54
46
|
alias :run_linux_redhat :run_linux_centos
|
55
47
|
|
56
|
-
# Install
|
48
|
+
# Install packages on macs
|
57
49
|
#
|
58
50
|
# === Return
|
59
51
|
# true:: Always return true
|
60
|
-
def
|
61
|
-
|
52
|
+
def run_darwin
|
53
|
+
PackageInstaller.install(darwin, options)
|
54
|
+
true
|
62
55
|
end
|
63
56
|
|
64
|
-
|
57
|
+
protected
|
58
|
+
|
59
|
+
# Calculate options to be given to installer
|
65
60
|
#
|
66
61
|
# === Return
|
67
|
-
#
|
68
|
-
def
|
69
|
-
|
62
|
+
# opts(Hash):: Hash of options to be given to installer
|
63
|
+
def options
|
64
|
+
opts = { :report => true }
|
65
|
+
opts.merge!({ :abort_on_failure => 'Failed to install packages' }) if abort_on_failure
|
66
|
+
opts
|
70
67
|
end
|
71
68
|
|
72
69
|
end
|
@@ -162,7 +162,7 @@ module RightConf
|
|
162
162
|
if ruby =~ /^ree-|^ruby-/
|
163
163
|
packages = %w(build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev)
|
164
164
|
end # TBD Define packages needed for other rubies
|
165
|
-
Command.
|
165
|
+
Command.sudo('apt-get', 'install', '-y', *packages)
|
166
166
|
report_success
|
167
167
|
end
|
168
168
|
|
@@ -177,7 +177,7 @@ module RightConf
|
|
177
177
|
if ruby =~ /^ree-|^ruby-/
|
178
178
|
packages = %w(gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel iconv-devel)
|
179
179
|
end # TBD Define packages needed for other rubies
|
180
|
-
Command.
|
180
|
+
Command.sudo('yum', 'install', '-y', *packages)
|
181
181
|
report_success
|
182
182
|
end
|
183
183
|
alias :install_ruby_prerequesites_linux_redhat :install_ruby_prerequesites_linux_centos
|
@@ -0,0 +1,62 @@
|
|
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 BrewInstaller
|
15
|
+
|
16
|
+
include ProgressReporter
|
17
|
+
|
18
|
+
def self.check_and_install
|
19
|
+
return true if File.directory?('/usr/local/.git')
|
20
|
+
report_check('Installing Homebrew')
|
21
|
+
|
22
|
+
chmods = %w( . bin etc include lib lib/pkgconfig Library sbin share var share/locale share/man
|
23
|
+
share/man/man1 share/man/man2 share/man/man3 share/man/man4
|
24
|
+
share/man/man5 share/man/man6 share/man/man7 share/man/man8
|
25
|
+
share/info share/doc share/aclocal ).
|
26
|
+
map{ |d| "/usr/local/#{d}" }.
|
27
|
+
select{ |d| File.directory? d and not File.writable? d }
|
28
|
+
chgrps = chmods.reject{ |d| File.stat(d).grpowned? }
|
29
|
+
|
30
|
+
if File.directory?('/usr/local')
|
31
|
+
Command.sudo('/bin/chmod', 'g+w', *chmods) unless chmods.empty?
|
32
|
+
# all admin users are in staff
|
33
|
+
Command.sudo('/usr/bin/chgrp', 'staff', *chgrps) unless chgrps.empty?
|
34
|
+
else
|
35
|
+
Command.sudo('/bin/mkdir', '/usr/local')
|
36
|
+
Command.sudo('/bin/chmod', 'g+w', '/usr/local')
|
37
|
+
# the group is set to wheel by default for some reason
|
38
|
+
Command.sudo('/usr/bin/chgrp', 'staff', '/usr/local')
|
39
|
+
end
|
40
|
+
|
41
|
+
Dir.chdir('/usr/local') do
|
42
|
+
# -m to stop tar erroring out if it can't modify the mtime for root owned directories
|
43
|
+
# pipefail to cause the exit status from curl to propogate if it fails
|
44
|
+
system("/bin/bash -o pipefail -c '/usr/bin/curl -sSfL https://github.com/mxcl/homebrew/tarball/master | /usr/bin/tar xz -m --strip 1'")
|
45
|
+
end
|
46
|
+
|
47
|
+
report_success
|
48
|
+
|
49
|
+
unless chmods.empty?
|
50
|
+
report("The following directories had to be made group writable: #{chmods.join(', ')}")
|
51
|
+
end
|
52
|
+
unless chgrps.empty?
|
53
|
+
report("The following directories had their group set to staff: #{chgrps.join(', ')}")
|
54
|
+
end
|
55
|
+
unless ENV['PATH'].split(':').include? '/usr/local/bin'
|
56
|
+
report('/usr/local/bin is not in your PATH.')
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
@@ -0,0 +1,87 @@
|
|
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 PackageInstaller
|
15
|
+
|
16
|
+
include Singleton
|
17
|
+
include ProgressReporter
|
18
|
+
|
19
|
+
# Install given packages
|
20
|
+
#
|
21
|
+
# === Parameters
|
22
|
+
# packages(String|Array):: Package name or Packages list
|
23
|
+
# opts[:abort_on_failure](String):: Optional, abort configuration
|
24
|
+
# and display given error message if install fails when set
|
25
|
+
# opts[:report](TrueClass|FalseClass):: Whether to report installation
|
26
|
+
#
|
27
|
+
# === Return
|
28
|
+
# true:: Always return true
|
29
|
+
def install(packages, opts=nil)
|
30
|
+
packages = [ packages ].flatten
|
31
|
+
report = opts && opts.delete(:report)
|
32
|
+
report_check("Installing the following packages:\n#{packages.join(' ')}\nThis could take a while") if report
|
33
|
+
Platform.dispatch(packages, opts) { :install }
|
34
|
+
report_success if report
|
35
|
+
end
|
36
|
+
|
37
|
+
protected
|
38
|
+
|
39
|
+
# Install debian packages
|
40
|
+
#
|
41
|
+
# === Return
|
42
|
+
# true:: Always return true
|
43
|
+
def install_linux_ubuntu(packages, opts)
|
44
|
+
return if packages.nil?
|
45
|
+
args = packages.dup
|
46
|
+
args << opts if opts
|
47
|
+
Command.sudo('apt-get', 'install', '-y', *args)
|
48
|
+
end
|
49
|
+
alias :install_linux_debian :install_linux_ubuntu
|
50
|
+
|
51
|
+
# Install yum packages
|
52
|
+
#
|
53
|
+
# === Return
|
54
|
+
# true:: Always return true
|
55
|
+
def install_linux_centos(packages, opts)
|
56
|
+
return if packages.nil?
|
57
|
+
args = packages.dup
|
58
|
+
args << opts if opts
|
59
|
+
Command.sudo('yum', 'install', '-y', *args)
|
60
|
+
end
|
61
|
+
alias :install_linux_redhat :install_linux_centos
|
62
|
+
|
63
|
+
# Use brew on Mac OS X
|
64
|
+
#
|
65
|
+
# === Return
|
66
|
+
# true:: Always return true
|
67
|
+
def install_darwin(packages, opts)
|
68
|
+
return if packages.nil?
|
69
|
+
BrewInstaller.check_and_install
|
70
|
+
packages.each do |p|
|
71
|
+
args = [ p ]
|
72
|
+
args << opts if opts
|
73
|
+
Command.execute('brew', 'install', *args)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
# Install Windows software
|
78
|
+
#
|
79
|
+
# === Return
|
80
|
+
# true:: Always return true
|
81
|
+
def install_windows(packages, opts)
|
82
|
+
# TBD
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
data/lib/rconf/version.rb
CHANGED
@@ -18,7 +18,7 @@ describe RightConf::PackagesConfigurator do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
before(:each) do
|
21
|
-
lang = RightConf::Language.parse('packages { debian %w(deb1 deb2); centos %w(cent1 cent2) }')
|
21
|
+
lang = RightConf::Language.parse('packages { debian %w(deb1 deb2); centos %w(cent1 cent2); darwin %w(mac1 mac2) }')
|
22
22
|
@configurator = lang.configurators.first
|
23
23
|
[:report_check, :report_result, :report_fatal, :report_success].each do |meth|
|
24
24
|
flexmock(@configurator).should_receive(meth)
|
@@ -26,16 +26,19 @@ describe RightConf::PackagesConfigurator do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'should install packages on Ubuntu' do
|
29
|
-
flexmock(RightConf::
|
30
|
-
'sudo', 'apt-get', 'install', '-y', 'deb1', 'deb2').and_return(success_result)
|
29
|
+
flexmock(RightConf::PackageInstaller.instance).should_receive(:install).once.with(%w(deb1 deb2), { :report => true })
|
31
30
|
@configurator.run_linux_ubuntu
|
32
31
|
end
|
33
32
|
|
34
33
|
it 'should install packages on Centos' do
|
35
|
-
flexmock(RightConf::
|
36
|
-
'sudo', 'yum', 'install', '-y', 'cent1', 'cent2').and_return(success_result)
|
34
|
+
flexmock(RightConf::PackageInstaller.instance).should_receive(:install).once.with(%w(cent1 cent2), { :report => true })
|
37
35
|
@configurator.run_linux_centos
|
38
36
|
end
|
39
37
|
|
38
|
+
it 'should install packages on Darwin' do
|
39
|
+
flexmock(RightConf::PackageInstaller.instance).should_receive(:install).once.with(%w(mac1 mac2), { :report => true })
|
40
|
+
@configurator.run_darwin
|
41
|
+
end
|
42
|
+
|
40
43
|
end
|
41
44
|
|
@@ -0,0 +1,52 @@
|
|
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::PackageInstaller do
|
15
|
+
|
16
|
+
def success_result(output=nil)
|
17
|
+
flexmock('res', :success? => true, :output => output)
|
18
|
+
end
|
19
|
+
|
20
|
+
before(:each) do
|
21
|
+
[:report_check, :report_result, :report_fatal, :report_success].each do |meth|
|
22
|
+
flexmock(RightConf::PackageInstaller.instance).should_receive(meth)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should install packages on Ubuntu' do
|
27
|
+
flexmock(RightConf::Platform.instance).should_receive(:family).and_return(:linux)
|
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)
|
31
|
+
RightConf::PackageInstaller.install(['deb1', 'deb2'])
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should install packages on Centos' do
|
35
|
+
flexmock(RightConf::Platform.instance).should_receive(:family).and_return(:linux)
|
36
|
+
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)
|
39
|
+
RightConf::PackageInstaller.install(['cent1', 'cent2'])
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should install packages on Darwin' do
|
43
|
+
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)
|
48
|
+
RightConf::PackageInstaller.install(['mac1', 'mac2'])
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rconf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.6.
|
5
|
+
version: 0.6.24
|
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-
|
13
|
+
date: 2011-03-20 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- lib/rconf/configurator.rb
|
76
76
|
- lib/rconf/configurator_registry.rb
|
77
77
|
- lib/rconf/configurators/bundler_configurator.rb
|
78
|
+
- lib/rconf/configurators/mercurial_configurator.rb
|
78
79
|
- lib/rconf/configurators/packages_configurator.rb
|
79
80
|
- lib/rconf/configurators/passenger_configurator.rb
|
80
81
|
- lib/rconf/configurators/ruby_configurator.rb
|
@@ -89,6 +90,8 @@ files:
|
|
89
90
|
- lib/rconf/progress_reporters/file_reporter.rb
|
90
91
|
- lib/rconf/progress_reporters/stdout_reporter.rb
|
91
92
|
- lib/rconf/ruby_extensions.rb
|
93
|
+
- lib/rconf/support/brew_installer.rb
|
94
|
+
- lib/rconf/support/package_installer.rb
|
92
95
|
- lib/rconf/trollop.rb
|
93
96
|
- lib/rconf/version.rb
|
94
97
|
- rconf.gemspec
|
@@ -107,6 +110,7 @@ files:
|
|
107
110
|
- spec/progress_reporters/stdout_reporter_spec.rb
|
108
111
|
- spec/ruby_extensions_spec.rb
|
109
112
|
- spec/spec_helper.rb
|
113
|
+
- spec/support/package_installer_spec.rb
|
110
114
|
has_rdoc: true
|
111
115
|
homepage: http://rubygems.org/gems/rconf
|
112
116
|
licenses: []
|
@@ -150,3 +154,4 @@ test_files:
|
|
150
154
|
- spec/progress_reporters/stdout_reporter_spec.rb
|
151
155
|
- spec/ruby_extensions_spec.rb
|
152
156
|
- spec/spec_helper.rb
|
157
|
+
- spec/support/package_installer_spec.rb
|