boxen-halyard 2.8.0.akerl9

Sign up to get free protection for your applications and to get access to all the features.
data/script/Boxen ADDED
Binary file
data/script/bootstrap ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/sh
2
+ # Make sure local dependencies are satisfied.
3
+
4
+ cd "$(dirname $0)"/..
5
+
6
+ rm -f .bundle/config
7
+ bundle install --binstubs bin --path .bundle --quiet
@@ -0,0 +1,6 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ cd $(dirname "$0")/..
6
+ cc -g -O2 -Wall -framework Security -framework CoreFoundation -mmacosx-version-min=10.6 -o script/Boxen src/keychain-helper.c
data/script/release ADDED
@@ -0,0 +1,38 @@
1
+ #!/bin/sh
2
+ # Tag and push a release.
3
+
4
+ set -e
5
+
6
+ # Make sure we're in the project root.
7
+
8
+ cd $(dirname "$0")/..
9
+
10
+ # Build a new gem archive.
11
+
12
+ rm -rf boxen-*.gem
13
+ gem build -q boxen.gemspec
14
+
15
+ # Make sure we're on the master branch.
16
+
17
+ (git branch | grep -q '* master') || {
18
+ echo "Only release from the master branch."
19
+ exit 1
20
+ }
21
+
22
+ # Figure out what version we're releasing.
23
+
24
+ tag=v`ls boxen-*.gem | sed 's/^boxen-\(.*\)\.gem$/\1/'`
25
+
26
+ # Make sure we haven't released this version before.
27
+
28
+ git fetch -t origin
29
+
30
+ (git tag -l | grep -q "$tag") && {
31
+ echo "Whoops, there's already a '${tag}' tag."
32
+ exit 1
33
+ }
34
+
35
+ # Tag it and bag it.
36
+
37
+ gem push boxen-*.gem && git tag "$tag" &&
38
+ git push origin master && git push origin "$tag"
data/script/tests ADDED
@@ -0,0 +1,10 @@
1
+ #!/bin/sh
2
+ # Run the unit tests.
3
+
4
+ cd "$(dirname $0)"/..
5
+
6
+ script/bootstrap &&
7
+ ruby -rubygems -Ilib:test \
8
+ -e 'require "bundler/setup"' \
9
+ -e 'tests = ARGV.empty? ? Dir["test/**/*_test.rb"] : ARGV' \
10
+ -e 'tests.each { |f| load f }' "$@"
@@ -0,0 +1,85 @@
1
+ #include <stdio.h>
2
+ #include <stdlib.h>
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)
10
+
11
+ int key_exists_p(
12
+ const char *service,
13
+ const char *login,
14
+ SecKeychainItemRef *item
15
+ ) {
16
+ void *buf;
17
+ UInt32 len;
18
+
19
+ OSStatus ret = SecKeychainFindGenericPassword(
20
+ NULL, strlen(service), service, strlen(login), login, &len, &buf, item
21
+ );
22
+
23
+ if (ret == errSecSuccess) {
24
+ return 0;
25
+ } else {
26
+ if (ret != errSecItemNotFound) {
27
+ // Item not found is not an error in predicate method context.
28
+ REPORT_KEYCHAIN_ERROR(ret);
29
+ }
30
+ return ret;
31
+ }
32
+ }
33
+
34
+ int main(int argc, char **argv) {
35
+ if ((argc < 3) || (argc > 4)) {
36
+ printf("Usage: %s <service> <account> [<password>]\n", argv[0]);
37
+ return 1;
38
+ }
39
+
40
+ const char *service = argv[1];
41
+ const char *login = argv[2];
42
+ const char *password = argc == 4 ? argv[3] : NULL;
43
+
44
+ void *buf;
45
+ UInt32 len;
46
+ SecKeychainItemRef item;
47
+
48
+ if (password != NULL && strlen(password) != 0) {
49
+ if (key_exists_p(service, login, &item) == 0) {
50
+ SecKeychainItemDelete(item);
51
+ }
52
+
53
+ OSStatus create_key = SecKeychainAddGenericPassword(
54
+ NULL, strlen(service), service, strlen(login), login, strlen(password),
55
+ password, &item
56
+ );
57
+
58
+ if (create_key != 0) {
59
+ REPORT_KEYCHAIN_ERROR(create_key);
60
+ return 1;
61
+ }
62
+ } else if (password != NULL && strlen(password) == 0) {
63
+ if (key_exists_p(service, login, &item) == 0) {
64
+ OSStatus ret = SecKeychainItemDelete(item);
65
+ if (ret != errSecSuccess) {
66
+ REPORT_KEYCHAIN_ERROR(ret);
67
+ }
68
+ }
69
+ } else {
70
+ OSStatus find_key = SecKeychainFindGenericPassword(
71
+ NULL, strlen(service), service, strlen(login), login, &len, &buf, &item);
72
+
73
+ if (find_key == errSecItemNotFound) {
74
+ return find_key;
75
+ }
76
+ if (find_key != 0) {
77
+ REPORT_KEYCHAIN_ERROR(find_key);
78
+ return 1;
79
+ }
80
+
81
+ fwrite(buf, 1, len, stdout);
82
+ }
83
+
84
+ return 0;
85
+ }
metadata ADDED
@@ -0,0 +1,245 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: boxen-halyard
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.8.0.akerl9
5
+ platform: ruby
6
+ authors:
7
+ - John Barnette
8
+ - Will Farrington
9
+ - David Goodlad
10
+ - Mike McQuaid
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2015-12-23 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: ansi
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: 1.5.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 1.5.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: highline
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: 1.7.0
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: 1.7.0
44
+ - !ruby/object:Gem::Dependency
45
+ name: json_pure
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: 1.8.0
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: 1.8.0
58
+ - !ruby/object:Gem::Dependency
59
+ name: librarian-puppet
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: 2.2.0
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: 2.2.0
72
+ - !ruby/object:Gem::Dependency
73
+ name: octokit
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - "~>"
77
+ - !ruby/object:Gem::Version
78
+ version: 4.2.0
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: 4.2.0
86
+ - !ruby/object:Gem::Dependency
87
+ name: puppet
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: 4.3.0
93
+ type: :runtime
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: 4.3.0
100
+ - !ruby/object:Gem::Dependency
101
+ name: rubocop
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: 0.35.0
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: 0.35.0
114
+ - !ruby/object:Gem::Dependency
115
+ name: rake
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: 10.4.0
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: 10.4.0
128
+ - !ruby/object:Gem::Dependency
129
+ name: codecov
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: 0.1.1
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: 0.1.1
142
+ - !ruby/object:Gem::Dependency
143
+ name: rspec
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: 3.4.0
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: 3.4.0
156
+ - !ruby/object:Gem::Dependency
157
+ name: fuubar
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: 2.0.0
163
+ type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: 2.0.0
170
+ description: Manage Mac development boxes with love (and Puppet).
171
+ email:
172
+ - jbarnette@github.com
173
+ - wfarr@github.com
174
+ - dgoodlad@github.com
175
+ - mikemcquaid@github.com
176
+ executables: []
177
+ extensions: []
178
+ extra_rdoc_files: []
179
+ files:
180
+ - ".gitignore"
181
+ - Gemfile
182
+ - LICENSE
183
+ - README.md
184
+ - Rakefile
185
+ - boxen.gemspec
186
+ - circle.yml
187
+ - lib/boxen/check.rb
188
+ - lib/boxen/checkout.rb
189
+ - lib/boxen/cli.rb
190
+ - lib/boxen/config.rb
191
+ - lib/boxen/error.rb
192
+ - lib/boxen/flags.rb
193
+ - lib/boxen/hook.rb
194
+ - lib/boxen/hook/github_issue.rb
195
+ - lib/boxen/hook/web.rb
196
+ - lib/boxen/keychain.rb
197
+ - lib/boxen/postflight.rb
198
+ - lib/boxen/postflight/active.rb
199
+ - lib/boxen/postflight/env.rb
200
+ - lib/boxen/preflight.rb
201
+ - lib/boxen/preflight/creds.rb
202
+ - lib/boxen/preflight/directories.rb
203
+ - lib/boxen/preflight/etc_my_cnf.rb
204
+ - lib/boxen/preflight/identity.rb
205
+ - lib/boxen/preflight/os.rb
206
+ - lib/boxen/preflight/rbenv.rb
207
+ - lib/boxen/preflight/rvm.rb
208
+ - lib/boxen/project.rb
209
+ - lib/boxen/puppeteer.rb
210
+ - lib/boxen/runner.rb
211
+ - lib/boxen/service.rb
212
+ - lib/boxen/util.rb
213
+ - lib/facter/boxen.rb
214
+ - lib/system_timer.rb
215
+ - script/Boxen
216
+ - script/bootstrap
217
+ - script/build-keychain-helper
218
+ - script/release
219
+ - script/tests
220
+ - src/keychain-helper.c
221
+ homepage: https://github.com/halyard/boxen
222
+ licenses:
223
+ - MIT
224
+ metadata: {}
225
+ post_install_message:
226
+ rdoc_options: []
227
+ require_paths:
228
+ - lib
229
+ required_ruby_version: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - ">="
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
234
+ required_rubygems_version: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - ">"
237
+ - !ruby/object:Gem::Version
238
+ version: 1.3.1
239
+ requirements: []
240
+ rubyforge_project:
241
+ rubygems_version: 2.4.5.1
242
+ signing_key:
243
+ specification_version: 4
244
+ summary: You know, for laptops and stuff.
245
+ test_files: []