boxen 0.0.0
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/.gitignore +4 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +49 -0
- data/LICENSE +20 -0
- data/README.md +7 -0
- data/boxen.gemspec +24 -0
- data/lib/boxen/check.rb +72 -0
- data/lib/boxen/cli.rb +79 -0
- data/lib/boxen/config.rb +251 -0
- data/lib/boxen/error.rb +4 -0
- data/lib/boxen/flags.rb +166 -0
- data/lib/boxen/postflight.rb +13 -0
- data/lib/boxen/postflight/active.rb +16 -0
- data/lib/boxen/postflight/env.rb +29 -0
- data/lib/boxen/preflight.rb +13 -0
- data/lib/boxen/preflight/creds.rb +34 -0
- data/lib/boxen/preflight/etc_my_cnf.rb +12 -0
- data/lib/boxen/preflight/homebrew.rb +13 -0
- data/lib/boxen/preflight/identity.rb +16 -0
- data/lib/boxen/preflight/os.rb +11 -0
- data/lib/boxen/preflight/rbenv.rb +12 -0
- data/lib/boxen/project.rb +24 -0
- data/lib/boxen/puppeteer.rb +68 -0
- data/lib/boxen/util.rb +17 -0
- data/script/bootstrap +9 -0
- data/script/tests +10 -0
- data/test/boxen/test.rb +7 -0
- data/test/boxen_check_test.rb +55 -0
- data/test/boxen_cli_test.rb +15 -0
- data/test/boxen_config_test.rb +157 -0
- data/test/boxen_flags_test.rb +182 -0
- data/test/boxen_postflight_active_test.rb +29 -0
- data/test/boxen_postflight_env_test.rb +6 -0
- data/test/boxen_project_test.rb +21 -0
- data/test/boxen_puppeteer_test.rb +77 -0
- data/test/boxen_util_test.rb +21 -0
- data/test/fixtures/repo/modules/projects/manifests/first-project.pp +0 -0
- data/test/fixtures/repo/modules/projects/manifests/second-project.pp +0 -0
- data/test/system_timer.rb +10 -0
- metadata +211 -0
@@ -0,0 +1,29 @@
|
|
1
|
+
require "boxen/test"
|
2
|
+
require "boxen/postflight"
|
3
|
+
|
4
|
+
class BoxenPostflightActiveTest < Boxen::Test
|
5
|
+
def setup
|
6
|
+
@check = Boxen::Postflight::Active.new :config
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_ok?
|
10
|
+
Boxen::Util.expects(:active?).returns true
|
11
|
+
assert @check.ok?
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_ok_bad
|
15
|
+
Boxen::Util.expects(:active?).returns false
|
16
|
+
refute @check.ok?
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_run
|
20
|
+
config = stub :envfile => "foo"
|
21
|
+
@check = Boxen::Postflight::Active.new config
|
22
|
+
|
23
|
+
stdout, stderr = capture_io do
|
24
|
+
@check.run
|
25
|
+
end
|
26
|
+
|
27
|
+
assert_match "loaded", stderr
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "boxen/test"
|
2
|
+
require "boxen/project"
|
3
|
+
|
4
|
+
class BoxenProjectTest < Boxen::Test
|
5
|
+
def test_initialize
|
6
|
+
project = Boxen::Project.new "foo"
|
7
|
+
assert_equal "foo", project.dir
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_installed?
|
11
|
+
project = Boxen::Project.new "foo"
|
12
|
+
|
13
|
+
File.expects(:directory?).with("foo").returns true
|
14
|
+
assert project.installed?
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_name
|
18
|
+
project = Boxen::Project.new "foo/bar/baz"
|
19
|
+
assert_equal "baz", project.name
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require "boxen/test"
|
2
|
+
require "boxen/puppeteer"
|
3
|
+
|
4
|
+
class BoxenPuppeteerTest < Boxen::Test
|
5
|
+
def test_initialize
|
6
|
+
puppet = Boxen::Puppeteer.new :config
|
7
|
+
assert_equal :config, puppet.config
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_flags
|
11
|
+
config = stub do
|
12
|
+
stubs(:homedir).returns "homedir"
|
13
|
+
stubs(:logfile).returns "logfile"
|
14
|
+
stubs(:profile?).returns true
|
15
|
+
stubs(:puppetdir).returns "puppetdir"
|
16
|
+
stubs(:repodir).returns "repodir"
|
17
|
+
stubs(:debug?).returns true
|
18
|
+
stubs(:pretend?).returns true
|
19
|
+
end
|
20
|
+
|
21
|
+
puppet = Boxen::Puppeteer.new config
|
22
|
+
flags = puppet.flags
|
23
|
+
|
24
|
+
assert_flag "--debug", flags
|
25
|
+
assert_flag "--detailed-exitcodes", flags
|
26
|
+
assert_flag "--evaltrace", flags
|
27
|
+
assert_flag "--no-report", flags
|
28
|
+
assert_flag "--noop", flags
|
29
|
+
assert_flag "--summarize", flags
|
30
|
+
|
31
|
+
assert_flag_value "--confdir", :anything, flags
|
32
|
+
assert_flag_value "--vardir", :anything, flags
|
33
|
+
assert_flag_value "--libdir", :anything, flags
|
34
|
+
assert_flag_value "--manifestdir", :anything, flags
|
35
|
+
assert_flag_value "--modulepath", :anything, flags
|
36
|
+
|
37
|
+
assert_flag_value "--logdest", "logfile", flags
|
38
|
+
assert_flag_value "--logdest", "console", flags
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_run
|
42
|
+
config = stub do
|
43
|
+
stubs(:debug?).returns false
|
44
|
+
stubs(:homedir).returns "homedir"
|
45
|
+
stubs(:logfile).returns "logfile"
|
46
|
+
stubs(:pretend?).returns false
|
47
|
+
stubs(:profile?).returns false
|
48
|
+
stubs(:puppetdir).returns "puppetdir"
|
49
|
+
stubs(:repodir).returns "test/fixtures/repo"
|
50
|
+
end
|
51
|
+
|
52
|
+
puppet = Boxen::Puppeteer.new config
|
53
|
+
|
54
|
+
FileUtils.expects(:rm_f).with config.logfile
|
55
|
+
FileUtils.expects(:touch).with config.logfile
|
56
|
+
FileUtils.expects(:mkdir_p).with File.dirname(config.logfile)
|
57
|
+
FileUtils.expects(:mkdir_p).with config.puppetdir
|
58
|
+
Boxen::Util.expects(:sudo).with *puppet.command
|
59
|
+
|
60
|
+
puppet.run
|
61
|
+
end
|
62
|
+
|
63
|
+
def assert_flag(flag, flags)
|
64
|
+
assert flags.include?(flag), "Flags must include #{flag}."
|
65
|
+
end
|
66
|
+
|
67
|
+
def assert_flag_value(flag, value, flags)
|
68
|
+
pair = [flag, value]
|
69
|
+
|
70
|
+
found = (0..flags.size).detect do |i|
|
71
|
+
candidate = flags[i, pair.size]
|
72
|
+
value == :anything ? candidate.size == pair.size : candidate == pair
|
73
|
+
end
|
74
|
+
|
75
|
+
assert found, "Flags must include #{flag} #{value}."
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "boxen/test"
|
2
|
+
require "boxen/util"
|
3
|
+
|
4
|
+
class BoxenUtilTest < Boxen::Test
|
5
|
+
def test_self_active?
|
6
|
+
ENV.expects(:include?).with("BOXEN_HOME").returns true
|
7
|
+
assert Boxen::Util.active?
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_self_active_disabled
|
11
|
+
ENV.expects(:include?).with("BOXEN_HOME").returns false
|
12
|
+
refute Boxen::Util.active?
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_self_sudo
|
16
|
+
Boxen::Util.expects(:system).
|
17
|
+
with "sudo", "-p", "Password for sudo: ", "echo", "foo"
|
18
|
+
|
19
|
+
Boxen::Util.sudo "echo", "foo"
|
20
|
+
end
|
21
|
+
end
|
File without changes
|
File without changes
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# THIS IS SUCH HAX. Faraday helpfully reminds you to install
|
2
|
+
# `system_timer` if you're running Ruby 1.8, since Timeout can give
|
3
|
+
# unreliable results. We can't do this during first-time runs, since
|
4
|
+
# there's no C compiler available.
|
5
|
+
#
|
6
|
+
# To squash the message and stop confusing people, this shim just
|
7
|
+
# exposes Timeout as SystemTimer. I'm a bad person.
|
8
|
+
|
9
|
+
require "timeout"
|
10
|
+
SystemTimer = Timeout
|
metadata
ADDED
@@ -0,0 +1,211 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: boxen
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- John Barnette
|
9
|
+
- Will Farrington
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2012-10-03 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: ansi
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ~>
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '1.4'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '1.4'
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: highline
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ~>
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '1.6'
|
39
|
+
type: :runtime
|
40
|
+
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '1.6'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: json_pure
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.7'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1.7'
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: octokit
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ~>
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '1.15'
|
71
|
+
type: :runtime
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '1.15'
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: puppet
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ~>
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '3.0'
|
87
|
+
type: :runtime
|
88
|
+
prerelease: false
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ~>
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '3.0'
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: minitest
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - '='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 3.5.0
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - '='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 3.5.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: mocha
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - ~>
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0.12'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ~>
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0.12'
|
127
|
+
description: Manage Mac development boxes with love (and Puppet).
|
128
|
+
email:
|
129
|
+
- jbarnette@github.com
|
130
|
+
- wfarr@github.com
|
131
|
+
executables: []
|
132
|
+
extensions: []
|
133
|
+
extra_rdoc_files: []
|
134
|
+
files:
|
135
|
+
- .gitignore
|
136
|
+
- Gemfile
|
137
|
+
- Gemfile.lock
|
138
|
+
- LICENSE
|
139
|
+
- README.md
|
140
|
+
- boxen.gemspec
|
141
|
+
- lib/boxen/check.rb
|
142
|
+
- lib/boxen/cli.rb
|
143
|
+
- lib/boxen/config.rb
|
144
|
+
- lib/boxen/error.rb
|
145
|
+
- lib/boxen/flags.rb
|
146
|
+
- lib/boxen/postflight.rb
|
147
|
+
- lib/boxen/postflight/active.rb
|
148
|
+
- lib/boxen/postflight/env.rb
|
149
|
+
- lib/boxen/preflight.rb
|
150
|
+
- lib/boxen/preflight/creds.rb
|
151
|
+
- lib/boxen/preflight/etc_my_cnf.rb
|
152
|
+
- lib/boxen/preflight/homebrew.rb
|
153
|
+
- lib/boxen/preflight/identity.rb
|
154
|
+
- lib/boxen/preflight/os.rb
|
155
|
+
- lib/boxen/preflight/rbenv.rb
|
156
|
+
- lib/boxen/project.rb
|
157
|
+
- lib/boxen/puppeteer.rb
|
158
|
+
- lib/boxen/util.rb
|
159
|
+
- script/bootstrap
|
160
|
+
- script/tests
|
161
|
+
- test/boxen/test.rb
|
162
|
+
- test/boxen_check_test.rb
|
163
|
+
- test/boxen_cli_test.rb
|
164
|
+
- test/boxen_config_test.rb
|
165
|
+
- test/boxen_flags_test.rb
|
166
|
+
- test/boxen_postflight_active_test.rb
|
167
|
+
- test/boxen_postflight_env_test.rb
|
168
|
+
- test/boxen_project_test.rb
|
169
|
+
- test/boxen_puppeteer_test.rb
|
170
|
+
- test/boxen_util_test.rb
|
171
|
+
- test/fixtures/repo/modules/projects/manifests/first-project.pp
|
172
|
+
- test/fixtures/repo/modules/projects/manifests/second-project.pp
|
173
|
+
- test/system_timer.rb
|
174
|
+
homepage: https://github.com/boxen/boxen
|
175
|
+
licenses: []
|
176
|
+
post_install_message:
|
177
|
+
rdoc_options: []
|
178
|
+
require_paths:
|
179
|
+
- lib
|
180
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
181
|
+
none: false
|
182
|
+
requirements:
|
183
|
+
- - ! '>='
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '0'
|
186
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
|
+
none: false
|
188
|
+
requirements:
|
189
|
+
- - ! '>='
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
version: '0'
|
192
|
+
requirements: []
|
193
|
+
rubyforge_project:
|
194
|
+
rubygems_version: 1.8.23
|
195
|
+
signing_key:
|
196
|
+
specification_version: 3
|
197
|
+
summary: You know, for laptops and stuff.
|
198
|
+
test_files:
|
199
|
+
- test/boxen/test.rb
|
200
|
+
- test/boxen_check_test.rb
|
201
|
+
- test/boxen_cli_test.rb
|
202
|
+
- test/boxen_config_test.rb
|
203
|
+
- test/boxen_flags_test.rb
|
204
|
+
- test/boxen_postflight_active_test.rb
|
205
|
+
- test/boxen_postflight_env_test.rb
|
206
|
+
- test/boxen_project_test.rb
|
207
|
+
- test/boxen_puppeteer_test.rb
|
208
|
+
- test/boxen_util_test.rb
|
209
|
+
- test/fixtures/repo/modules/projects/manifests/first-project.pp
|
210
|
+
- test/fixtures/repo/modules/projects/manifests/second-project.pp
|
211
|
+
- test/system_timer.rb
|