boxen 0.4.1 → 0.4.2

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.
@@ -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