boxen 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +5 -1
- data/boxen.gemspec +1 -1
- data/lib/boxen/config.rb +1 -5
- data/lib/boxen/flags.rb +1 -1
- data/lib/boxen/preflight/etc_my_cnf.rb +1 -1
- data/lib/boxen/preflight/rvm.rb +1 -1
- data/lib/boxen/puppeteer.rb +5 -2
- data/script/Boxen +0 -0
- data/script/build-keychain-helper +1 -1
- data/src/keychain-helper.c +12 -3
- data/test/boxen_config_test.rb +45 -24
- metadata +3 -3
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Boxen
|
1
|
+
# Boxen [![Build Status](https://travis-ci.org/boxen/boxen.png?branch=master)](https://travis-ci.org/boxen/boxen)
|
2
2
|
|
3
3
|
Manage Mac development boxes with love (and Puppet).
|
4
4
|
|
@@ -44,3 +44,7 @@ and we can't just modify the sudoers file due to a chicken-egg problem.
|
|
44
44
|
|
45
45
|
Use the OS X system Ruby (1.8.7). Run `script/tests` often. Open PR's.
|
46
46
|
Use the CI.
|
47
|
+
|
48
|
+
## Halp!
|
49
|
+
|
50
|
+
Use Issues or #boxen on irc.freenode.net.
|
data/boxen.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.name = "boxen"
|
5
|
-
gem.version = "1.0.
|
5
|
+
gem.version = "1.0.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)."
|
data/lib/boxen/config.rb
CHANGED
@@ -102,10 +102,6 @@ module Boxen
|
|
102
102
|
# Is full disk encryption required? Default is `true`. Respects
|
103
103
|
# the `BOXEN_NO_FDE` environment variable.
|
104
104
|
|
105
|
-
def fde=(val)
|
106
|
-
@fde = val
|
107
|
-
end
|
108
|
-
|
109
105
|
def fde?
|
110
106
|
!ENV["BOXEN_NO_FDE"] && @fde
|
111
107
|
end
|
@@ -230,7 +226,7 @@ module Boxen
|
|
230
226
|
# `"/Users/#{user}/src"`.
|
231
227
|
|
232
228
|
def srcdir
|
233
|
-
@srcdir || "/Users/#{user}/src"
|
229
|
+
@srcdir || ENV["BOXEN_SRC_DIR"] || "/Users/#{user}/src"
|
234
230
|
end
|
235
231
|
|
236
232
|
attr_writer :srcdir
|
data/lib/boxen/flags.rb
CHANGED
@@ -3,7 +3,7 @@ require "boxen/preflight"
|
|
3
3
|
class Boxen::Preflight::EtcMyCnf < Boxen::Preflight
|
4
4
|
def run
|
5
5
|
abort "You have an /etc/my.cnf file.",
|
6
|
-
"This will confuse
|
6
|
+
"This will confuse Boxen's MySQL a lot. Please remove it."
|
7
7
|
end
|
8
8
|
|
9
9
|
def ok?
|
data/lib/boxen/preflight/rvm.rb
CHANGED
@@ -3,7 +3,7 @@ require "boxen/preflight"
|
|
3
3
|
class Boxen::Preflight::RVM < Boxen::Preflight
|
4
4
|
def run
|
5
5
|
abort "You have an rvm installed in ~/.rvm.",
|
6
|
-
"
|
6
|
+
"Boxen uses rbenv to install ruby, so please `rvm implode`"
|
7
7
|
end
|
8
8
|
|
9
9
|
def ok?
|
data/lib/boxen/puppeteer.rb
CHANGED
@@ -81,12 +81,15 @@ module Boxen
|
|
81
81
|
|
82
82
|
ENV["GITHUB_API_TOKEN"] = config.token
|
83
83
|
|
84
|
-
|
84
|
+
librarian_command = [librarian, "install", "--path=#{config.repodir}/shared"]
|
85
|
+
librarian_command << "--verbose" if config.debug?
|
86
|
+
|
87
|
+
warn librarian_command.join(" ") if config.debug?
|
88
|
+
unless system *librarian_command
|
85
89
|
abort "Can't run Puppet, fetching dependencies with librarian failed."
|
86
90
|
end
|
87
91
|
end
|
88
92
|
|
89
|
-
warn command.join " " if config.debug?
|
90
93
|
Boxen::Util.sudo *command
|
91
94
|
|
92
95
|
Status.new($?.exitstatus)
|
data/script/Boxen
CHANGED
Binary file
|
data/src/keychain-helper.c
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
#include <stdio.h>
|
2
2
|
#include <stdlib.h>
|
3
3
|
#include <Security/Security.h>
|
4
|
+
#include <CoreFoundation/CFString.h>
|
5
|
+
|
6
|
+
#define REPORT_KEYCHAIN_ERROR(err_val) do { \
|
7
|
+
fprintf(stderr, "Boxen Keychain Helper: Encountered error code: %d\n", err_val); \
|
8
|
+
fprintf(stderr, "Error: %s\n", CFStringGetCStringPtr(SecCopyErrorMessageString(err_val, NULL), kCFStringEncodingMacRoman)); \
|
9
|
+
} while(0)
|
4
10
|
|
5
11
|
int key_exists_p(
|
6
12
|
const char *service,
|
@@ -17,7 +23,10 @@ int key_exists_p(
|
|
17
23
|
if (ret == 0) {
|
18
24
|
return 0;
|
19
25
|
} else {
|
20
|
-
|
26
|
+
if (ret != errSecItemNotFound) {
|
27
|
+
// Item not found is not an error in predicate method context.
|
28
|
+
REPORT_KEYCHAIN_ERROR(ret);
|
29
|
+
}
|
21
30
|
return ret;
|
22
31
|
}
|
23
32
|
}
|
@@ -47,7 +56,7 @@ int main(int argc, char **argv) {
|
|
47
56
|
);
|
48
57
|
|
49
58
|
if (create_key != 0) {
|
50
|
-
|
59
|
+
REPORT_KEYCHAIN_ERROR(create_key);
|
51
60
|
return 1;
|
52
61
|
}
|
53
62
|
|
@@ -56,7 +65,7 @@ int main(int argc, char **argv) {
|
|
56
65
|
NULL, strlen(service), service, strlen(login), login, &len, &buf, &item);
|
57
66
|
|
58
67
|
if (find_key != 0) {
|
59
|
-
|
68
|
+
REPORT_KEYCHAIN_ERROR(find_key);
|
60
69
|
return 1;
|
61
70
|
}
|
62
71
|
|
data/test/boxen_config_test.rb
CHANGED
@@ -29,28 +29,33 @@ class BoxenConfigTest < Boxen::Test
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def test_fde_env_var
|
32
|
-
val = ENV[
|
32
|
+
val = ENV["BOXEN_NO_FDE"]
|
33
33
|
|
34
|
-
ENV[
|
34
|
+
ENV["BOXEN_NO_FDE"] = "1"
|
35
35
|
refute @config.fde?
|
36
36
|
|
37
|
-
ENV[
|
37
|
+
ENV["BOXEN_NO_FDE"] = val
|
38
38
|
end
|
39
39
|
|
40
40
|
def test_homedir
|
41
|
+
val = ENV["BOXEN_HOME"]
|
42
|
+
ENV["BOXEN_HOME"] = nil
|
43
|
+
|
41
44
|
assert_equal "/opt/boxen", @config.homedir
|
42
45
|
|
43
46
|
@config.homedir = "foo"
|
44
47
|
assert_equal "foo", @config.homedir
|
48
|
+
|
49
|
+
ENV["BOXEN_HOME"] = val
|
45
50
|
end
|
46
51
|
|
47
52
|
def test_homedir_env_var_boxen_home
|
48
|
-
val = ENV[
|
53
|
+
val = ENV["BOXEN_HOME"]
|
49
54
|
|
50
|
-
ENV[
|
55
|
+
ENV["BOXEN_HOME"] = "foo"
|
51
56
|
assert_equal "foo", @config.homedir
|
52
57
|
|
53
|
-
ENV[
|
58
|
+
ENV["BOXEN_HOME"] = val
|
54
59
|
end
|
55
60
|
|
56
61
|
def test_initialize
|
@@ -69,12 +74,12 @@ class BoxenConfigTest < Boxen::Test
|
|
69
74
|
end
|
70
75
|
|
71
76
|
def test_logfile_env_var
|
72
|
-
val = ENV[
|
77
|
+
val = ENV["BOXEN_LOG_FILE"]
|
73
78
|
|
74
|
-
ENV[
|
79
|
+
ENV["BOXEN_LOG_FILE"] = "foo"
|
75
80
|
assert_equal "foo", @config.logfile
|
76
81
|
|
77
|
-
ENV[
|
82
|
+
ENV["BOXEN_LOG_FILE"] = val
|
78
83
|
end
|
79
84
|
|
80
85
|
def test_login
|
@@ -122,12 +127,12 @@ class BoxenConfigTest < Boxen::Test
|
|
122
127
|
end
|
123
128
|
|
124
129
|
def test_puppetdir_env_var
|
125
|
-
val = ENV[
|
130
|
+
val = ENV["BOXEN_PUPPET_DIR"]
|
126
131
|
|
127
|
-
ENV[
|
132
|
+
ENV["BOXEN_PUPPET_DIR"] = "foo"
|
128
133
|
assert_equal "foo", @config.puppetdir
|
129
134
|
|
130
|
-
ENV[
|
135
|
+
ENV["BOXEN_PUPPET_DIR"] = val
|
131
136
|
end
|
132
137
|
|
133
138
|
def test_repodir
|
@@ -141,12 +146,12 @@ class BoxenConfigTest < Boxen::Test
|
|
141
146
|
def test_repodir_env_var
|
142
147
|
@config.repodir = nil
|
143
148
|
|
144
|
-
val = ENV[
|
149
|
+
val = ENV["BOXEN_REPO_DIR"]
|
145
150
|
|
146
|
-
ENV[
|
151
|
+
ENV["BOXEN_REPO_DIR"] = "foo"
|
147
152
|
assert_equal "foo", @config.repodir
|
148
153
|
|
149
|
-
ENV[
|
154
|
+
ENV["BOXEN_REPO_DIR"] = val
|
150
155
|
end
|
151
156
|
|
152
157
|
def test_reponame
|
@@ -155,12 +160,12 @@ class BoxenConfigTest < Boxen::Test
|
|
155
160
|
end
|
156
161
|
|
157
162
|
def test_reponame_env_var
|
158
|
-
val = ENV[
|
163
|
+
val = ENV["BOXEN_REPO_NAME"]
|
159
164
|
|
160
|
-
ENV[
|
165
|
+
ENV["BOXEN_REPO_NAME"] = "env/var"
|
161
166
|
assert_equal "env/var", @config.reponame
|
162
167
|
|
163
|
-
ENV[
|
168
|
+
ENV["BOXEN_REPO_NAME"] = val
|
164
169
|
end
|
165
170
|
|
166
171
|
def test_reponame_git_config
|
@@ -194,11 +199,27 @@ class BoxenConfigTest < Boxen::Test
|
|
194
199
|
end
|
195
200
|
|
196
201
|
def test_srcdir
|
202
|
+
val = ENV["BOXEN_SRC_DIR"]
|
203
|
+
ENV["BOXEN_SRC_DIR"] = nil
|
204
|
+
|
197
205
|
@config.expects(:user).returns "foo"
|
198
206
|
assert_equal "/Users/foo/src", @config.srcdir
|
199
207
|
|
200
208
|
@config.srcdir = "elsewhere"
|
201
209
|
assert_equal "elsewhere", @config.srcdir
|
210
|
+
|
211
|
+
ENV["BOXEN_SRC_DIR"] = val
|
212
|
+
end
|
213
|
+
|
214
|
+
def test_srcdir_env_var
|
215
|
+
@config.srcdir = nil
|
216
|
+
|
217
|
+
val = ENV["BOXEN_SRC_DIR"]
|
218
|
+
|
219
|
+
ENV["BOXEN_SRC_DIR"] = "Projects"
|
220
|
+
assert_equal "Projects", @config.srcdir
|
221
|
+
|
222
|
+
ENV["BOXEN_SRC_DIR"] = val
|
202
223
|
end
|
203
224
|
|
204
225
|
def test_stealth?
|
@@ -209,12 +230,12 @@ class BoxenConfigTest < Boxen::Test
|
|
209
230
|
end
|
210
231
|
|
211
232
|
def test_stealth_env_var
|
212
|
-
val = ENV[
|
233
|
+
val = ENV["BOXEN_NO_ISSUE"]
|
213
234
|
|
214
|
-
ENV[
|
235
|
+
ENV["BOXEN_NO_ISSUE"] = "1"
|
215
236
|
assert @config.stealth?
|
216
237
|
|
217
|
-
ENV[
|
238
|
+
ENV["BOXEN_NO_ISSUE"] = val
|
218
239
|
end
|
219
240
|
|
220
241
|
def test_token
|
@@ -225,7 +246,7 @@ class BoxenConfigTest < Boxen::Test
|
|
225
246
|
end
|
226
247
|
|
227
248
|
def test_user
|
228
|
-
ENV[
|
249
|
+
ENV["USER"] = "foo"
|
229
250
|
assert_equal "foo", @config.user
|
230
251
|
|
231
252
|
@config.user = "bar"
|
@@ -233,8 +254,8 @@ class BoxenConfigTest < Boxen::Test
|
|
233
254
|
end
|
234
255
|
|
235
256
|
def test_api
|
236
|
-
@config.login = login =
|
237
|
-
@config.password = pass =
|
257
|
+
@config.login = login = "someuser"
|
258
|
+
@config.password = pass = "s3kr!7"
|
238
259
|
|
239
260
|
api = Object.new
|
240
261
|
Octokit::Client.expects(:new).with(:login => login, :password => pass).once.returns(api)
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
8
|
+
- 2
|
9
|
+
version: 1.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- John Barnette
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-
|
18
|
+
date: 2013-03-05 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|