boxen 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "boxen"
5
- gem.version = "0.4.1"
5
+ gem.version = "0.4.2"
6
6
  gem.authors = ["John Barnette", "Will Farrington"]
7
7
  gem.email = ["jbarnette@github.com", "wfarr@github.com"]
8
8
  gem.description = "Manage Mac development boxes with love (and Puppet)."
@@ -1,103 +1,29 @@
1
- require "boxen/checkout"
2
1
  require "boxen/config"
3
2
  require "boxen/flags"
4
3
  require "boxen/postflight"
5
4
  require "boxen/preflight"
6
- require "boxen/puppeteer"
7
- require "boxen/reporter"
5
+ require "boxen/runner"
8
6
  require "boxen/util"
9
7
 
10
8
  module Boxen
11
9
  class CLI
12
10
  attr_reader :config
13
11
  attr_reader :flags
14
- attr_reader :puppet
15
- attr_reader :checkout
16
- attr_reader :reporter
12
+ attr_reader :runner
17
13
 
18
14
  def initialize(config, flags)
19
15
  @config = config
20
16
  @flags = flags
21
- @puppet = Boxen::Puppeteer.new @config
22
- @checkout = Boxen::Checkout.new(@config)
23
- @reporter = Boxen::Reporter.new(@config, @checkout, @puppet)
24
- end
25
-
26
- def process
27
- # --env prints out the current BOXEN_ env vars.
28
-
29
- exec "env | grep ^BOXEN_ | sort" if flags.env?
30
-
31
- # --help prints some CLI help and exits.
32
-
33
- abort "#{flags}\n" if flags.help?
34
-
35
- # --projects prints a list of available projects and exits.
36
-
37
- if flags.projects?
38
- config.projects.each do |project|
39
- prefix = project.installed? ? "*" : " "
40
- puts "#{prefix} #{project.name}"
41
- end
42
-
43
- exit
44
- end
45
-
46
- # --disable-services stops all services
47
-
48
- if flags.disable_services?
49
- Dir["/Library/LaunchDaemons/com.boxen.*.plist"]. each do |service|
50
- service_human_name = service.match(/com\.boxen\.(.+)\.plist$/)[1]
51
- puts "Disabling #{service_human_name}..."
52
- Boxen::Util.sudo("/bin/launchctl", "unload", "-w", service)
53
- end
54
-
55
- exit
56
- end
57
-
58
- # --enable-services starts all services
59
-
60
- if flags.enable_services?
61
- Dir["/Library/LaunchDaemons/com.boxen.*.plist"]. each do |service|
62
- service_human_name = service.match(/com\.boxen\.(.+)\.plist$/)[1]
63
- puts "Enabling #{service_human_name}..."
64
- Boxen::Util.sudo("/bin/launchctl", "load", "-w", service)
65
- end
66
-
67
- exit
68
- end
69
-
70
- # --list-services lists all services
71
-
72
- if flags.list_services?
73
- Dir["/Library/LaunchDaemons/com.boxen.*.plist"]. each do |service|
74
- service_human_name = service.match(/com\.boxen\.(.+)\.plist$/)[1]
75
- puts service_human_name
76
- end
77
-
78
- exit
79
- end
80
-
81
- # Actually run Puppet and return its exit code.
82
-
83
- puppet.run
17
+ @runner = Boxen::Runner.new(@config, @flags)
84
18
  end
85
19
 
86
20
  def run
87
- report(process)
88
- end
89
-
90
- def report(result)
91
- return result unless issues?
92
-
93
- if self.class.successful_exit_code? result
94
- reporter.close_failures
95
- else
96
- warn "Sorry! Creating an issue on #{config.reponame}."
97
- reporter.record_failure
21
+ if flags.help?
22
+ puts flags
23
+ exit
98
24
  end
99
25
 
100
- result
26
+ runner.run
101
27
  end
102
28
 
103
29
  # Run Boxen by wiring together the command-line flags, config,
@@ -132,23 +58,11 @@ module Boxen
132
58
 
133
59
  # Run the postflight checks.
134
60
 
135
- Boxen::Postflight.run config if successful_exit_code?(status)
61
+ Boxen::Postflight.run config if status.success?
136
62
 
137
63
  # Return Puppet's exit status.
138
64
 
139
- return status
140
- end
141
-
142
- # Puppet's detailed exit codes reserves 2 for a successful run with changes
143
-
144
- def self.successful_exit_code?(code)
145
- [0, 2].member? code
146
- end
147
-
148
- # Should the result of this run have any effect on GitHub issues?
149
-
150
- def issues?
151
- !config.stealth? && !config.pretend? && checkout.master?
65
+ return status.code
152
66
  end
153
67
  end
154
68
  end
@@ -6,6 +6,14 @@ module Boxen
6
6
  # Manages an invocation of puppet.
7
7
 
8
8
  class Puppeteer
9
+
10
+ class Status < Struct.new(:code)
11
+ # Puppet's detailed exit codes reserves 2 for a successful run with changes
12
+ def success?
13
+ [0,2].include?(code)
14
+ end
15
+ end
16
+
9
17
  attr_reader :config
10
18
 
11
19
  def initialize(config)
@@ -77,7 +85,7 @@ module Boxen
77
85
  warn command.join " " if config.debug?
78
86
  Boxen::Util.sudo *command
79
87
 
80
- $?.exitstatus
88
+ Status.new($?.exitstatus)
81
89
  end
82
90
  end
83
91
  end
@@ -0,0 +1,117 @@
1
+ require "boxen/checkout"
2
+ require "boxen/config"
3
+ require "boxen/flags"
4
+ require "boxen/puppeteer"
5
+ require "boxen/reporter"
6
+ require "boxen/util"
7
+
8
+ module Boxen
9
+ class Runner
10
+ attr_reader :config
11
+ attr_reader :flags
12
+ attr_reader :puppet
13
+ attr_reader :checkout
14
+ attr_reader :reporter
15
+
16
+ def initialize(config, flags)
17
+ @config = config
18
+ @flags = flags
19
+ @puppet = Boxen::Puppeteer.new(@config)
20
+ @checkout = Boxen::Checkout.new(@config)
21
+ @reporter = Boxen::Reporter.new(@config, @checkout, @puppet)
22
+ end
23
+
24
+ def process
25
+ # --env prints out the current BOXEN_ env vars.
26
+
27
+ exec "env | grep ^BOXEN_ | sort" if flags.env?
28
+
29
+ process_flags
30
+
31
+ # Actually run Puppet and return its result
32
+
33
+ puppet.run
34
+ end
35
+
36
+ def run
37
+ report(process)
38
+ end
39
+
40
+ def report(result)
41
+ return result unless issues?
42
+
43
+ if result.success?
44
+ reporter.close_failures
45
+ else
46
+ warn "Sorry! Creating an issue on #{config.reponame}."
47
+ reporter.record_failure
48
+ end
49
+
50
+ result
51
+ end
52
+
53
+ def process_flags
54
+
55
+ # --projects prints a list of available projects and exits.
56
+
57
+ if flags.projects?
58
+ config.projects.each do |project|
59
+ prefix = project.installed? ? "*" : " "
60
+ puts "#{prefix} #{project.name}"
61
+ end
62
+
63
+ exit
64
+ end
65
+
66
+ # --disable-services stops all services
67
+
68
+ if flags.disable_services?
69
+ Boxen::Service.list.each do |service|
70
+ puts "Disabling #{service}..."
71
+ service.disable
72
+ end
73
+
74
+ exit
75
+ end
76
+
77
+ # --enable-services starts all services
78
+
79
+ if flags.enable_services?
80
+ Boxen::Service.list.each do |service|
81
+ puts "Enabling #{service}..."
82
+ service.enable
83
+ end
84
+
85
+ exit
86
+ end
87
+
88
+ # --list-services lists all services
89
+
90
+ if flags.list_services?
91
+ Boxen::Service.list.each do |service|
92
+ puts service
93
+ end
94
+
95
+ exit
96
+ end
97
+
98
+ end
99
+
100
+ # Should the result of this run have any effect on GitHub issues?
101
+
102
+ def issues?
103
+ !config.stealth? && !config.pretend? && checkout.master?
104
+ end
105
+
106
+
107
+ private
108
+
109
+ def services
110
+ Dir["/Library/LaunchDaemons/com.boxen.*.plist"]
111
+ end
112
+
113
+ def service_human_name(service)
114
+ service.match(/com\.boxen\.(.+)\.plist$/)[1]
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,48 @@
1
+ require "boxen/util"
2
+
3
+ module Boxen
4
+ class Service
5
+ attr_reader :name
6
+
7
+ def self.list
8
+ files.collect do |service|
9
+ new(human_name(service))
10
+ end
11
+ end
12
+
13
+ def initialize(name)
14
+ @name = name
15
+ end
16
+
17
+ def to_s
18
+ name
19
+ end
20
+
21
+ def enable
22
+ Boxen::Util.sudo('/bin/launchctl', 'load', '-w', location)
23
+ end
24
+
25
+ def disable
26
+ Boxen::Util.sudo('/bin/launchctl', 'unload', '-w', location)
27
+ end
28
+
29
+
30
+ private
31
+
32
+ def location
33
+ "#{self.class.location}/com.boxen.#{name}.plist"
34
+ end
35
+
36
+ def self.location
37
+ "/Library/LaunchDaemons"
38
+ end
39
+
40
+ def self.files
41
+ Dir["#{location}/com.boxen.*.plist"]
42
+ end
43
+
44
+ def self.human_name(service)
45
+ service.match(/com\.boxen\.(.+)\.plist$/)[1]
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,8 @@
1
+ require "json"
2
+
3
+ dot_boxen = "#{ENV['HOME']}/.boxen"
4
+
5
+ if File.exist? dot_boxen
6
+ facts = JSON.parse(File.read(dot_boxen))
7
+ facts.each { |k, v| Facter.add(k) { setcode { v } } }
8
+ end
@@ -5,10 +5,7 @@ class BoxenCLITest < Boxen::Test
5
5
  def setup
6
6
  @config = Boxen::Config.new
7
7
  @flags = Boxen::Flags.new
8
- @cli = Boxen::CLI.new(@config, @flags)
9
-
10
- $stdout.stubs(:puts).returns(true)
11
- $stdout.stubs(:write).returns(true)
8
+ @cli = Boxen::CLI.new(@config, @flags)
12
9
  end
13
10
 
14
11
  def test_initialize
@@ -18,166 +15,25 @@ class BoxenCLITest < Boxen::Test
18
15
  cli = Boxen::CLI.new config, flags
19
16
 
20
17
  assert_equal config, cli.config
21
- assert_equal flags, cli.flags
22
- assert_equal config, cli.puppet.config
23
-
24
- assert_equal config, cli.reporter.config
25
- assert_equal config, cli.reporter.checkout.config
26
- assert_equal cli.checkout, cli.reporter.checkout
27
- assert_equal cli.puppet, cli.reporter.puppet
28
- end
29
-
30
- def test_issues?
31
- @config.stealth = true
32
- @config.pretend = true
33
- @cli.checkout.stubs(:master?).returns(false)
34
- assert !@cli.issues?
35
-
36
- @config.stealth = false
37
- @config.pretend = true
38
- @cli.checkout.stubs(:master?).returns(false)
39
- assert !@cli.issues?
40
-
41
- @config.stealth = true
42
- @config.pretend = false
43
- @cli.checkout.stubs(:master?).returns(false)
44
- assert !@cli.issues?
45
-
46
- @config.stealth = true
47
- @config.pretend = true
48
- @cli.checkout.stubs(:master?).returns(true)
49
- assert !@cli.issues?
50
-
51
- @config.stealth = false
52
- @config.pretend = true
53
- @cli.checkout.stubs(:master?).returns(true)
54
- assert !@cli.issues?
55
-
56
- @config.stealth = true
57
- @config.pretend = false
58
- @cli.checkout.stubs(:master?).returns(true)
59
- assert !@cli.issues?
60
-
61
- @config.stealth = false
62
- @config.pretend = false
63
- @cli.checkout.stubs(:master?).returns(true)
64
- assert @cli.issues?
65
- end
66
-
67
- def test_report_failure
68
- @cli.stubs(:issues?).returns(true)
69
- @cli.stubs(:process).returns(1)
70
- @cli.stubs(:warn)
71
-
72
- @cli.reporter.expects(:record_failure)
73
- @cli.reporter.expects(:close_failures).never
74
-
75
- @cli.run
76
- end
77
-
78
- def test_run_success
79
- @cli.stubs(:issues?).returns(true)
80
- @cli.stubs(:process).returns(0)
81
-
82
- @cli.reporter.expects(:record_failure).never
83
- @cli.reporter.expects(:close_failures)
84
-
85
- @cli.run
86
- end
87
-
88
- def test_run_success_exit_code_2
89
- @cli.stubs(:issues?).returns(true)
90
- @cli.stubs(:process).returns(2)
91
-
92
- @cli.reporter.expects(:record_failure).never
93
- @cli.reporter.expects(:close_failures)
94
-
95
- @cli.run
96
- end
18
+ assert_equal flags, cli.flags
97
19
 
98
- def test_run_failure_no_issues
99
- @cli.stubs(:issues?).returns(false)
100
- @cli.stubs(:process).returns(1)
101
-
102
- @cli.reporter.expects(:record_failure).never
103
- @cli.reporter.expects(:close_failures).never
104
-
105
- @cli.run
20
+ assert_equal config, cli.runner.config
21
+ assert_equal flags, cli.runner.flags
106
22
  end
107
23
 
108
- def test_run_success_no_issues
109
- @cli.stubs(:issues?).returns(false)
110
- @cli.stubs(:process).returns(0)
111
-
112
- @cli.reporter.expects(:record_failure).never
113
- @cli.reporter.expects(:close_failures).never
114
-
24
+ def test_run
25
+ @cli.runner.expects(:run)
115
26
  @cli.run
116
27
  end
117
28
 
118
- def test_run_success_exit_code_2_no_issues
119
- @cli.stubs(:issues?).returns(false)
120
- @cli.stubs(:process).returns(2)
121
-
122
- @cli.reporter.expects(:record_failure).never
123
- @cli.reporter.expects(:close_failures).never
124
-
125
- @cli.run
126
- end
127
-
128
- def test_disable_services
129
- config = Boxen::Config.new
130
- flags = Boxen::Flags.new('--disable-services')
131
- cli = Boxen::CLI.new config, flags
132
-
133
- Dir.expects(:[]).with("/Library/LaunchDaemons/com.boxen.*.plist").returns([
134
- "/Library/LaunchDaemons/com.boxen.test.plist"
135
- ])
136
-
137
- Boxen::Util.expects(:sudo).with(
138
- "/bin/launchctl",
139
- "unload",
140
- "-w",
141
- "/Library/LaunchDaemons/com.boxen.test.plist"
142
- ).returns(true)
143
-
144
- assert_raises(SystemExit) do
145
- cli.process
146
- end
147
- end
148
-
149
- def test_enable_services
150
- config = Boxen::Config.new
151
- flags = Boxen::Flags.new('--enable-services')
152
- cli = Boxen::CLI.new config, flags
153
-
154
- Dir.expects(:[]).with("/Library/LaunchDaemons/com.boxen.*.plist").returns([
155
- "/Library/LaunchDaemons/com.boxen.test.plist"
156
- ])
157
-
158
- Boxen::Util.expects(:sudo).with(
159
- "/bin/launchctl",
160
- "load",
161
- "-w",
162
- "/Library/LaunchDaemons/com.boxen.test.plist"
163
- ).returns(true)
164
-
165
- assert_raises(SystemExit) do
166
- cli.process
167
- end
168
- end
169
-
170
- def test_list_services
171
- config = Boxen::Config.new
172
- flags = Boxen::Flags.new('--list-services')
173
- cli = Boxen::CLI.new config, flags
174
-
175
- Dir.expects(:[]).with("/Library/LaunchDaemons/com.boxen.*.plist").returns([
176
- "/Library/LaunchDaemons/com.boxen.test.plist"
177
- ])
29
+ def test_help
30
+ $stdout.stubs(:write)
178
31
 
179
- assert_raises(SystemExit) do
180
- cli.process
32
+ flags = Boxen::Flags.new('--help')
33
+ cli = Boxen::CLI.new(@config, flags)
34
+ cli.runner.expects(:run).never
35
+ assert_raises SystemExit do
36
+ cli.run
181
37
  end
182
38
  end
183
39
  end
@@ -75,4 +75,15 @@ class BoxenPuppeteerTest < Boxen::Test
75
75
 
76
76
  assert found, "Flags must include #{flag} #{value}."
77
77
  end
78
+
79
+ def test_status
80
+ status = Boxen::Puppeteer::Status.new(0)
81
+ assert status.success?
82
+
83
+ status = Boxen::Puppeteer::Status.new(2)
84
+ assert status.success?
85
+
86
+ status = Boxen::Puppeteer::Status.new(1)
87
+ refute status.success?
88
+ end
78
89
  end
@@ -0,0 +1,149 @@
1
+ require "boxen/test"
2
+ require "boxen/runner"
3
+
4
+ class BoxenRunnerTest < Boxen::Test
5
+ def setup
6
+ @config = Boxen::Config.new
7
+ @flags = Boxen::Flags.new
8
+ @runner = Boxen::Runner.new(@config, @flags)
9
+
10
+ $stdout.stubs(:puts).returns(true)
11
+ $stdout.stubs(:write).returns(true)
12
+ end
13
+
14
+ def test_initialize
15
+ config = Boxen::Config.new
16
+ flags = Boxen::Flags.new
17
+
18
+ runner = Boxen::Runner.new(config, flags)
19
+
20
+ assert_equal config, runner.config
21
+ assert_equal flags, runner.flags
22
+ assert_equal config, runner.puppet.config
23
+
24
+ assert_equal config, runner.reporter.config
25
+ assert_equal config, runner.reporter.checkout.config
26
+ assert_equal runner.checkout, runner.reporter.checkout
27
+ assert_equal runner.puppet, runner.reporter.puppet
28
+ end
29
+
30
+ def test_issues?
31
+ @config.stealth = true
32
+ @config.pretend = true
33
+ @runner.checkout.stubs(:master?).returns(false)
34
+ assert !@runner.issues?
35
+
36
+ @config.stealth = false
37
+ @config.pretend = true
38
+ @runner.checkout.stubs(:master?).returns(false)
39
+ assert !@runner.issues?
40
+
41
+ @config.stealth = true
42
+ @config.pretend = false
43
+ @runner.checkout.stubs(:master?).returns(false)
44
+ assert !@runner.issues?
45
+
46
+ @config.stealth = true
47
+ @config.pretend = true
48
+ @runner.checkout.stubs(:master?).returns(true)
49
+ assert !@runner.issues?
50
+
51
+ @config.stealth = false
52
+ @config.pretend = true
53
+ @runner.checkout.stubs(:master?).returns(true)
54
+ assert !@runner.issues?
55
+
56
+ @config.stealth = true
57
+ @config.pretend = false
58
+ @runner.checkout.stubs(:master?).returns(true)
59
+ assert !@runner.issues?
60
+
61
+ @config.stealth = false
62
+ @config.pretend = false
63
+ @runner.checkout.stubs(:master?).returns(true)
64
+ assert @runner.issues?
65
+ end
66
+
67
+ def test_report_failure
68
+ @runner.stubs(:issues?).returns(true)
69
+ status = stub('status', :success? => false)
70
+ @runner.stubs(:process).returns(status)
71
+ @runner.stubs(:warn)
72
+
73
+ @runner.reporter.expects(:record_failure)
74
+ @runner.reporter.expects(:close_failures).never
75
+
76
+ @runner.run
77
+ end
78
+
79
+ def test_run_success
80
+ @runner.stubs(:issues?).returns(true)
81
+ status = stub('status', :success? => true)
82
+ @runner.stubs(:process).returns(status)
83
+
84
+ @runner.reporter.expects(:record_failure).never
85
+ @runner.reporter.expects(:close_failures)
86
+
87
+ @runner.run
88
+ end
89
+
90
+ def test_run_failure_no_issues
91
+ @runner.stubs(:issues?).returns(false)
92
+ status = stub('status', :success? => false)
93
+ @runner.stubs(:process).returns(status)
94
+
95
+ @runner.reporter.expects(:record_failure).never
96
+ @runner.reporter.expects(:close_failures).never
97
+
98
+ @runner.run
99
+ end
100
+
101
+ def test_run_success_no_issues
102
+ @runner.stubs(:issues?).returns(false)
103
+ status = stub('status', :success? => true)
104
+ @runner.stubs(:process).returns(status)
105
+
106
+ @runner.reporter.expects(:record_failure).never
107
+ @runner.reporter.expects(:close_failures).never
108
+
109
+ @runner.run
110
+ end
111
+
112
+ def test_disable_services
113
+ config = Boxen::Config.new
114
+ flags = Boxen::Flags.new('--disable-services')
115
+ runner = Boxen::Runner.new config, flags
116
+
117
+ services = Array.new(3) { mock('service', :disable => true) }
118
+ Boxen::Service.stubs(:list).returns(services)
119
+
120
+ assert_raises(SystemExit) do
121
+ runner.process
122
+ end
123
+ end
124
+
125
+ def test_enable_services
126
+ config = Boxen::Config.new
127
+ flags = Boxen::Flags.new('--enable-services')
128
+ runner = Boxen::Runner.new config, flags
129
+
130
+ services = Array.new(3) { mock('service', :enable => true) }
131
+ Boxen::Service.stubs(:list).returns(services)
132
+
133
+ assert_raises(SystemExit) do
134
+ runner.process
135
+ end
136
+ end
137
+
138
+ def test_list_services
139
+ config = Boxen::Config.new
140
+ flags = Boxen::Flags.new('--list-services')
141
+ runner = Boxen::Runner.new config, flags
142
+
143
+ Boxen::Service.expects(:list).returns(%w[a list of services])
144
+
145
+ assert_raises(SystemExit) do
146
+ runner.process
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,33 @@
1
+ require "boxen/test"
2
+ require "boxen/service"
3
+
4
+ class BoxenServiceTest < Boxen::Test
5
+ def test_list
6
+ Dir.expects(:[]).with("/Library/LaunchDaemons/com.boxen.*.plist").returns([
7
+ "/Library/LaunchDaemons/com.boxen.test.plist",
8
+ "/Library/LaunchDaemons/com.boxen.other.plist"
9
+ ])
10
+
11
+ services = Boxen::Service.list
12
+ assert_equal ['other', 'test'], services.collect(&:name).sort
13
+ end
14
+
15
+ def test_enable
16
+ service = Boxen::Service.new('blip')
17
+ Boxen::Util.expects(:sudo).with('/bin/launchctl', 'load', '-w',
18
+ '/Library/LaunchDaemons/com.boxen.blip.plist')
19
+ service.enable
20
+ end
21
+
22
+ def test_disable
23
+ service = Boxen::Service.new('thing')
24
+ Boxen::Util.expects(:sudo).with('/bin/launchctl', 'unload', '-w',
25
+ '/Library/LaunchDaemons/com.boxen.thing.plist')
26
+ service.disable
27
+ end
28
+
29
+ def test_to_s
30
+ service = Boxen::Service.new('blam')
31
+ assert_equal service.name, service.to_s
32
+ end
33
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boxen
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 1
10
- version: 0.4.1
9
+ - 2
10
+ version: 0.4.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - John Barnette
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-10-10 00:00:00 -10:00
19
+ date: 2012-10-23 00:00:00 -04:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -193,8 +193,11 @@ files:
193
193
  - lib/boxen/project.rb
194
194
  - lib/boxen/puppeteer.rb
195
195
  - lib/boxen/reporter.rb
196
+ - lib/boxen/runner.rb
197
+ - lib/boxen/service.rb
196
198
  - lib/boxen/util.rb
197
199
  - lib/facter/boxen.rb
200
+ - lib/facter/dot_boxen.rb
198
201
  - lib/system_timer.rb
199
202
  - script/bootstrap
200
203
  - script/release
@@ -214,6 +217,8 @@ files:
214
217
  - test/boxen_project_test.rb
215
218
  - test/boxen_puppeteer_test.rb
216
219
  - test/boxen_reporter_test.rb
220
+ - test/boxen_runner_test.rb
221
+ - test/boxen_service_test.rb
217
222
  - test/boxen_util_test.rb
218
223
  - test/fixtures/repo/modules/projects/manifests/first-project.pp
219
224
  - test/fixtures/repo/modules/projects/manifests/second-project.pp
@@ -267,6 +272,8 @@ test_files:
267
272
  - test/boxen_project_test.rb
268
273
  - test/boxen_puppeteer_test.rb
269
274
  - test/boxen_reporter_test.rb
275
+ - test/boxen_runner_test.rb
276
+ - test/boxen_service_test.rb
270
277
  - test/boxen_util_test.rb
271
278
  - test/fixtures/repo/modules/projects/manifests/first-project.pp
272
279
  - test/fixtures/repo/modules/projects/manifests/second-project.pp