jackchop 0.1.0 → 0.2.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.
- checksums.yaml +15 -0
- data/VERSION +1 -1
- data/generator_files/gitignore.erb +16 -0
- data/jackchop.gemspec +4 -1
- data/lib/jackchop.rb +8 -3
- data/lib/jackchop/api/github_api.rb +34 -0
- data/lib/jackchop/api/travis_api.rb +16 -0
- data/lib/jackchop/cli.rb +4 -4
- data/lib/jackchop/cli/cookbook.rb +6 -5
- data/lib/jackchop/cli/travis.rb +13 -0
- data/lib/jackchop/generators/init_generator.rb +6 -4
- metadata +53 -33
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
N2I4NmFiMmVmMDQ2YjQ2NjcxNjRhNmMzYmU5NGQ3ODEzMTE0ZDlmOQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZWZkZTFjMDQ2NmI2NzU1Y2MzMTJiNmYyOWU4Y2Y4Y2NhNmM4MzNmMg==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NmQ0ZGUxM2U3OTc5MTE4Y2M2Mjk2NTkzZmVjZTQ3M2ZlN2I3MTlhNzA0OWU0
|
10
|
+
NWUwYWJhZDBlMzg2ZDBjZTk1M2QwMGE5YjU2ZTRjYmMxZGY1MGVmNmY3OTVk
|
11
|
+
ZDQ2ZWU2OTc3NmNlNjM2Y2UxYjE1YzQ1OTg5ZTJlYWE3YTY0YWM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MWM3NTRjOWE1MmRhNjUyN2VlMzgwYzE0OTcxZmUyMzhlZmViNGE0NmExNzMz
|
14
|
+
Nzk4YTRlMzYwODE3ODczMzg4NjE2MmY5MzM2MjFkZDhkMDM3ZjhkNTllOTI4
|
15
|
+
MDkxNWE2ZWMwNWU3ZWI1ZGUwNTE4YzRmMTcyNWU3ZTMwOWVmNzY=
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/jackchop.gemspec
CHANGED
@@ -27,7 +27,10 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_dependency "chef", "~> 11.4.4"
|
28
28
|
spec.add_dependency "chefspec", "~> 1.0.0"
|
29
29
|
spec.add_dependency "thor", "~> 0.18.1"
|
30
|
-
spec.add_dependency "ridley", "~> 0.
|
30
|
+
spec.add_dependency "ridley", "~> 0.12.1"
|
31
|
+
spec.add_dependency "github_api", "~> 0.9.7"
|
32
|
+
spec.add_dependency "highline", "~> 1.6.19"
|
33
|
+
spec.add_dependency "travis", "~> 1.2.0"
|
31
34
|
|
32
35
|
# Workaround for json dependency for chef and berkshelf. Chef
|
33
36
|
# wants <= 1.7.7 and berkshelf >= 1.5 but bundler tries to grab 1.8.0
|
data/lib/jackchop.rb
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
require 'thor'
|
2
2
|
require 'ridley'
|
3
3
|
require 'berkshelf'
|
4
|
-
require 'jackchop/generators/base_generator'
|
5
|
-
require 'jackchop/generators/init_generator'
|
6
|
-
require 'jackchop/cli'
|
7
4
|
|
8
5
|
module Jackchop
|
6
|
+
autoload :BaseGenerator, 'jackchop/generators/base_generator'
|
7
|
+
autoload :InitGenerator, 'jackchop/generators/init_generator'
|
8
|
+
autoload :Cli, 'jackchop/cli'
|
9
|
+
autoload :Cookbook, 'jackchop/cli/cookbook'
|
10
|
+
autoload :Travis, 'jackchop/cli/travis'
|
11
|
+
autoload :GithubAPI, 'jackchop/api/github_api'
|
12
|
+
autoload :TravisAPI, 'jackchop/api/travis_api'
|
13
|
+
|
9
14
|
def self.root
|
10
15
|
@root ||= Pathname.new(File.expand_path('../', File.dirname(__FILE__)))
|
11
16
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'highline/import'
|
2
|
+
require 'github_api'
|
3
|
+
|
4
|
+
module Jackchop
|
5
|
+
module GithubAPI
|
6
|
+
GIT_REGEX = %r{^(?:https://|git://|git@)github\.com[:/](.*/.+?)(\.git)?$}
|
7
|
+
|
8
|
+
def find_repo_name
|
9
|
+
git_info = `git config --get remote.origin.url 2>&1`
|
10
|
+
$1 if git_info =~ GIT_REGEX
|
11
|
+
end
|
12
|
+
|
13
|
+
def github
|
14
|
+
@github ||= begin
|
15
|
+
github_username = ask("github username:")
|
16
|
+
github_password = ::HighLine.ask("github password: ") { |q| q.echo = false }
|
17
|
+
Github.new :login => github_username, :password => github_password
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def github_auth_token
|
22
|
+
@github_token || begin
|
23
|
+
auth = github.oauth.all.find { |auth| auth.note == 'Jackchop' }
|
24
|
+
if auth
|
25
|
+
auth.token
|
26
|
+
else
|
27
|
+
auth = github.oauth.create "scopes" => ["user:email", "public_repo"], "note" => "Jackchop"
|
28
|
+
auth.token
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'travis'
|
2
|
+
|
3
|
+
module Jackchop
|
4
|
+
module TravisAPI
|
5
|
+
include GithubAPI
|
6
|
+
|
7
|
+
def travis
|
8
|
+
@travis ||= begin
|
9
|
+
session = ::Travis::Client::Session.new
|
10
|
+
session.access_token = ::Travis.github_auth(github_auth_token)
|
11
|
+
session
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
data/lib/jackchop/cli.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
require 'thor'
|
2
|
-
require 'jackchop/cli/cookbook'
|
3
|
-
|
4
1
|
module Jackchop
|
5
2
|
class Cli < Thor
|
6
|
-
desc "cookbook", "Cookbook related tasks"
|
3
|
+
desc "cookbook", "Cookbook related tasks. Type jackchop cookbook for more help."
|
7
4
|
subcommand 'cookbook', Cookbook
|
5
|
+
|
6
|
+
desc "travis", "Travis related tasks. Type jackchop travis for more help."
|
7
|
+
subcommand 'travis', Travis
|
8
8
|
end
|
9
9
|
end
|
@@ -8,17 +8,18 @@ module Jackchop
|
|
8
8
|
|
9
9
|
desc "create [NAME]", "Creates a new cookbook"
|
10
10
|
def create(name)
|
11
|
-
|
12
11
|
Berkshelf::CookbookGenerator.new([File.join(Dir.pwd, name), name], default_berkshelf_options.merge(options)).invoke_all
|
13
12
|
Jackchop::InitGenerator.new([File.join(Dir.pwd, name)], options).invoke_all
|
14
13
|
end
|
15
14
|
|
16
|
-
def default_berkshelf_options
|
17
|
-
{ :chef_minitest => true }
|
18
|
-
end
|
19
|
-
|
20
15
|
def self.banner(task, namespace = false, subcommand = true)
|
21
16
|
"#{basename} #{task.formatted_usage(self, namespace, subcommand).split(':').join(' ')}"
|
22
17
|
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def default_berkshelf_options
|
22
|
+
{ :chef_minitest => true, :metadata_entry => true }
|
23
|
+
end
|
23
24
|
end
|
24
25
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'travis'
|
2
|
+
|
3
|
+
module Jackchop
|
4
|
+
class Travis < Thor
|
5
|
+
include TravisAPI
|
6
|
+
desc "enable [COOKBOOK]", "Enables the cookbook in travis-ci"
|
7
|
+
def enable
|
8
|
+
repo_name = find_repo_name
|
9
|
+
raise Thor::Error, "It does not appear that this repo exists on github. Have you pushed it?" if repo_name.nil?
|
10
|
+
travis.repo(repo_name).enable
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -1,6 +1,3 @@
|
|
1
|
-
require 'chef/knife'
|
2
|
-
require 'chef/knife/cookbook_create_specs'
|
3
|
-
|
4
1
|
module Jackchop
|
5
2
|
class InitGenerator < BaseGenerator
|
6
3
|
|
@@ -14,12 +11,17 @@ module Jackchop
|
|
14
11
|
template "Rakefile.erb", target.join("Rakefile")
|
15
12
|
template "Strainerfile.erb", target.join("Strainerfile")
|
16
13
|
template "Gemfile.erb", target.join("Gemfile"), :force => true
|
14
|
+
template "gitignore.erb", target.join(".gitignore"), :force => true
|
15
|
+
end
|
17
16
|
|
17
|
+
def chef_spec
|
18
|
+
require 'chef/knife'
|
19
|
+
require 'chef/knife/cookbook_create_specs'
|
18
20
|
chef_spec = ChefSpec::Knife::CookbookCreateSpecs.new
|
19
21
|
chef_spec.config[:cookbook_path] = File.dirname(target)
|
20
22
|
chef_spec.name_args[0] = File.basename(target)
|
21
23
|
chef_spec.run
|
22
|
-
|
24
|
+
end
|
23
25
|
|
24
26
|
private
|
25
27
|
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jackchop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Russell Teabeault
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-16 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: bundler
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ~>
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :development
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ~>
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,7 +28,6 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: rake
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - ! '>='
|
37
33
|
- !ruby/object:Gem::Version
|
@@ -39,7 +35,6 @@ dependencies:
|
|
39
35
|
type: :development
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - ! '>='
|
45
40
|
- !ruby/object:Gem::Version
|
@@ -47,7 +42,6 @@ dependencies:
|
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: version
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - ~>
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :development
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - ~>
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,7 +56,6 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: berkshelf
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - ~>
|
69
61
|
- !ruby/object:Gem::Version
|
@@ -71,7 +63,6 @@ dependencies:
|
|
71
63
|
type: :runtime
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - ~>
|
77
68
|
- !ruby/object:Gem::Version
|
@@ -79,7 +70,6 @@ dependencies:
|
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: chef
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
74
|
- - ~>
|
85
75
|
- !ruby/object:Gem::Version
|
@@ -87,7 +77,6 @@ dependencies:
|
|
87
77
|
type: :runtime
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
81
|
- - ~>
|
93
82
|
- !ruby/object:Gem::Version
|
@@ -95,7 +84,6 @@ dependencies:
|
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: chefspec
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - ~>
|
101
89
|
- !ruby/object:Gem::Version
|
@@ -103,7 +91,6 @@ dependencies:
|
|
103
91
|
type: :runtime
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
95
|
- - ~>
|
109
96
|
- !ruby/object:Gem::Version
|
@@ -111,7 +98,6 @@ dependencies:
|
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: thor
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
102
|
- - ~>
|
117
103
|
- !ruby/object:Gem::Version
|
@@ -119,7 +105,6 @@ dependencies:
|
|
119
105
|
type: :runtime
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
109
|
- - ~>
|
125
110
|
- !ruby/object:Gem::Version
|
@@ -127,23 +112,62 @@ dependencies:
|
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: ridley
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
116
|
- - ~>
|
133
117
|
- !ruby/object:Gem::Version
|
134
|
-
version: 0.
|
118
|
+
version: 0.12.1
|
135
119
|
type: :runtime
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
123
|
- - ~>
|
141
124
|
- !ruby/object:Gem::Version
|
142
|
-
version: 0.
|
125
|
+
version: 0.12.1
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: github_api
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ~>
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 0.9.7
|
133
|
+
type: :runtime
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ~>
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 0.9.7
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: highline
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ~>
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: 1.6.19
|
147
|
+
type: :runtime
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ~>
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: 1.6.19
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: travis
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ~>
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 1.2.0
|
161
|
+
type: :runtime
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ~>
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: 1.2.0
|
143
168
|
- !ruby/object:Gem::Dependency
|
144
169
|
name: json
|
145
170
|
requirement: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
171
|
requirements:
|
148
172
|
- - ~>
|
149
173
|
- !ruby/object:Gem::Version
|
@@ -151,7 +175,6 @@ dependencies:
|
|
151
175
|
type: :runtime
|
152
176
|
prerelease: false
|
153
177
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
178
|
requirements:
|
156
179
|
- - ~>
|
157
180
|
- !ruby/object:Gem::Version
|
@@ -176,13 +199,17 @@ files:
|
|
176
199
|
- generator_files/Gemfile.erb
|
177
200
|
- generator_files/Rakefile.erb
|
178
201
|
- generator_files/Strainerfile.erb
|
202
|
+
- generator_files/gitignore.erb
|
179
203
|
- generator_files/kitchen.yml.erb
|
180
204
|
- generator_files/travis.yml.erb
|
181
205
|
- img/jackchop.jpg
|
182
206
|
- jackchop.gemspec
|
183
207
|
- lib/jackchop.rb
|
208
|
+
- lib/jackchop/api/github_api.rb
|
209
|
+
- lib/jackchop/api/travis_api.rb
|
184
210
|
- lib/jackchop/cli.rb
|
185
211
|
- lib/jackchop/cli/cookbook.rb
|
212
|
+
- lib/jackchop/cli/travis.rb
|
186
213
|
- lib/jackchop/generators/base_generator.rb
|
187
214
|
- lib/jackchop/generators/init_generator.rb
|
188
215
|
- lib/jackchop/rake_tasks.rb
|
@@ -190,32 +217,25 @@ files:
|
|
190
217
|
homepage: http://github.com/RallySoftware-cookbooks/jackchop
|
191
218
|
licenses:
|
192
219
|
- MIT
|
220
|
+
metadata: {}
|
193
221
|
post_install_message:
|
194
222
|
rdoc_options: []
|
195
223
|
require_paths:
|
196
224
|
- lib
|
197
225
|
required_ruby_version: !ruby/object:Gem::Requirement
|
198
|
-
none: false
|
199
226
|
requirements:
|
200
227
|
- - ! '>='
|
201
228
|
- !ruby/object:Gem::Version
|
202
229
|
version: '0'
|
203
|
-
segments:
|
204
|
-
- 0
|
205
|
-
hash: 2674304610272158957
|
206
230
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
|
-
none: false
|
208
231
|
requirements:
|
209
232
|
- - ! '>='
|
210
233
|
- !ruby/object:Gem::Version
|
211
234
|
version: '0'
|
212
|
-
segments:
|
213
|
-
- 0
|
214
|
-
hash: 2674304610272158957
|
215
235
|
requirements: []
|
216
236
|
rubyforge_project:
|
217
|
-
rubygems_version:
|
237
|
+
rubygems_version: 2.0.3
|
218
238
|
signing_key:
|
219
|
-
specification_version:
|
239
|
+
specification_version: 4
|
220
240
|
summary: Used to create new cookbooks with the desired testing frameworks and tasks.
|
221
241
|
test_files: []
|