knife-skeleton 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +4 -3
- data/knife_skeleton.gemspec +3 -3
- data/lib/chef/knife/skeleton_create.rb +39 -31
- data/lib/knife_skeleton/template.rb +3 -4
- data/lib/knife_skeleton/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NzU0M2VlMTE1OGM1ZWJkZjQ1MDU5MjcyOTUxYzk1NjMxZmY4Zjc4MQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTE2NjM3NzlmZjc3MjdjMDU1MGFjYjZmMzQzNzZiNmI1OTQwYWE0MA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MjlhYzlkZDE1OGQwZDMwMWY5ZDg5MDUxYmJiOTY4MmYzMGEyOGFiMjUyODVh
|
10
|
+
ODQxMDM0ODkyNjM5N2IyYmE3NGY0NGU1ZDdiNjYwMWNlM2E2ZDE2MGE5NDZl
|
11
|
+
YjhlOWJhNGEwZjM2MjI5ZDNjZjk3ZDJmOGI3MzYxZmIxZWMwZDg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NjY4YmFkY2I1MTZkOWM3NGFjMDMwYjlkMDU1NTJjNWI4MTU2NjRjMmYyZmY5
|
14
|
+
ZjM5NWU3YWQxNWI3OGJkNmRiNDRlNDlkZGRhYTk0MTU1NDQ5NzZjOWMwMTY4
|
15
|
+
OGI0NDViZTNiZjdkM2IzYmI3M2ZmMzA3NGYyY2E0NzY2ZDA2MzI=
|
data/README.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
Knife plugin to create skeleton integrating chefspec, rubocop, foodcritic, knife test and kitchen.
|
4
4
|
|
5
|
+
##Motivation
|
6
|
+
|
7
|
+
The current "knife cookbook create" does not include tests, and many of us need to use chefspec, checkstyle and kitchen.
|
8
|
+
|
5
9
|
##Installation
|
6
10
|
|
7
11
|
With rubygems:
|
@@ -52,9 +56,6 @@ Create your cookbook
|
|
52
56
|
knife skeleton create my-cookbook -o /tmp/cookbooks
|
53
57
|
```
|
54
58
|
|
55
|
-
##Motivation
|
56
|
-
The current "knife cookbook create" does not include tests, and many of us need to use chefspec, checkstyle and kitchen.
|
57
|
-
|
58
59
|
## License and Authors
|
59
60
|
|
60
61
|
Authors:
|
data/knife_skeleton.gemspec
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
require File.expand_path('../lib/knife_skeleton/version', __FILE__)
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
|
-
s.authors = ['Pierre Rambaud']
|
6
|
-
s.email = ['pierre.rambaud@numergy.com']
|
5
|
+
s.authors = ['Pierre Rambaud', 'Antoine Rouyer']
|
6
|
+
s.email = ['pierre.rambaud@numergy.com', 'antoine.rouyer@numergy.com']
|
7
7
|
s.description = <<-eos
|
8
8
|
Knife plugin to create skeleton with rubocop, chefspec, kitchen,
|
9
9
|
strainer, etc...
|
@@ -20,7 +20,7 @@ eos
|
|
20
20
|
s.version = KnifeSkeleton::VERSION
|
21
21
|
|
22
22
|
s.add_dependency 'chef', '~> 0.10'
|
23
|
-
s.add_dependency 'erubis', '~>
|
23
|
+
s.add_dependency 'erubis', '~> 2.7'
|
24
24
|
|
25
25
|
s.add_development_dependency 'rake', '~> 10'
|
26
26
|
s.add_development_dependency 'rspec', '~> 2.14'
|
@@ -45,7 +45,8 @@ eos
|
|
45
45
|
|
46
46
|
# Public: Knife skeleton create runner
|
47
47
|
#
|
48
|
-
#
|
48
|
+
# @return [Void]
|
49
|
+
#
|
49
50
|
def run
|
50
51
|
self.config = Chef::Config.merge!(config)
|
51
52
|
if @name_args.length < 1
|
@@ -94,7 +95,8 @@ eos
|
|
94
95
|
# cookbook_license_name
|
95
96
|
# # => 'GNU Public LIcense 3.0'
|
96
97
|
#
|
97
|
-
#
|
98
|
+
# @return [String]
|
99
|
+
#
|
98
100
|
def cookbook_license_name
|
99
101
|
case cookbook_license
|
100
102
|
when 'apachev2'
|
@@ -114,14 +116,14 @@ eos
|
|
114
116
|
|
115
117
|
# Protected: Create cookbook directories
|
116
118
|
#
|
117
|
-
# cookbook_path - Cookbook path
|
118
|
-
# cookbook_name - Cookbook name
|
119
|
-
#
|
120
119
|
# Examples:
|
121
120
|
#
|
122
121
|
# create_cookbook_directories('/tmp', 'my-cookbook')
|
123
122
|
#
|
124
|
-
#
|
123
|
+
# @param [String] cookbook_path Cookbook path
|
124
|
+
# @param [String] cookbook_name Cookbook name
|
125
|
+
# @return [Void]
|
126
|
+
#
|
125
127
|
def create_cookbook_directories(cookbook_path, cookbook_name)
|
126
128
|
ui.msg("** Create cookbook #{cookbook_name} into #{cookbook_path}")
|
127
129
|
|
@@ -147,13 +149,13 @@ eos
|
|
147
149
|
|
148
150
|
# Protected: Create cookbook files from templates
|
149
151
|
#
|
150
|
-
# params - An Hash of parameters to use for binding template
|
151
|
-
#
|
152
152
|
# Examples:
|
153
153
|
#
|
154
154
|
# create_cookbook_templates({ cookbook_path: '/tmp', title: 'GoT' })
|
155
155
|
#
|
156
|
-
#
|
156
|
+
# @params [Hash] params An Hash of parameters to use for binding template
|
157
|
+
# @return [Void]
|
158
|
+
#
|
157
159
|
def create_cookbook_templates(params)
|
158
160
|
params[:license_content] = File.read(
|
159
161
|
File.join(
|
@@ -182,14 +184,14 @@ eos
|
|
182
184
|
|
183
185
|
# Protected: Copy all files into the cookbook
|
184
186
|
#
|
185
|
-
# cookbook_path - Cookbook path
|
186
|
-
# cookbook_name - Cookbook name
|
187
|
-
#
|
188
187
|
# Examples:
|
189
188
|
#
|
190
189
|
# create_cookbook_files('/tmp', 'my-cookbook')
|
191
190
|
#
|
192
|
-
#
|
191
|
+
# @param [String] cookbook_path Cookbook path
|
192
|
+
# @param [String] cookbook_name Cookbook name
|
193
|
+
# @return [Void]
|
194
|
+
#
|
193
195
|
def create_cookbook_files(
|
194
196
|
cookbook_path,
|
195
197
|
cookbook_name
|
@@ -208,15 +210,15 @@ eos
|
|
208
210
|
|
209
211
|
# Protected: Copy files
|
210
212
|
#
|
211
|
-
# cookbook_path - Cookbook path
|
212
|
-
# cookbook_name - Cookbook name
|
213
|
-
# file_name - File name to used without erb extension
|
214
|
-
#
|
215
213
|
# Examples:
|
216
214
|
#
|
217
215
|
# copy_file('/tmp', '/cookbooks', 'my-cookbook', 'README.md')
|
218
216
|
#
|
219
|
-
#
|
217
|
+
# @param [String] cookbook_path Cookbook path
|
218
|
+
# @param [String] cookbook_name Cookbook name
|
219
|
+
# @param [String] file_name File name to used without erb extension
|
220
|
+
# @return [Void]
|
221
|
+
#
|
220
222
|
def copy_file(cookbook_path, cookbook_name, file_name)
|
221
223
|
dst = File.join(
|
222
224
|
cookbook_path,
|
@@ -240,14 +242,14 @@ eos
|
|
240
242
|
|
241
243
|
# Protected: Render template
|
242
244
|
#
|
243
|
-
# file_name - File name to used without erb extension
|
244
|
-
# params - Binding parameters
|
245
|
-
#
|
246
245
|
# Examples:
|
247
246
|
#
|
248
247
|
# render_template('/tmp', 'my-file.rb', { title: 'GoT' })
|
249
248
|
#
|
250
|
-
#
|
249
|
+
# @param [String] file_name File name to used without erb extension
|
250
|
+
# @param [Hash] params Binding parameters
|
251
|
+
# @return [void]
|
252
|
+
#
|
251
253
|
def render_template(file_name, params)
|
252
254
|
dst = File.join(
|
253
255
|
params[:cookbook_path],
|
@@ -280,8 +282,6 @@ eos
|
|
280
282
|
|
281
283
|
# Protected: Test if parameter is empty
|
282
284
|
#
|
283
|
-
# parameter - The tested parameter
|
284
|
-
#
|
285
285
|
# Examples:
|
286
286
|
#
|
287
287
|
# parameter_empty?('my string')
|
@@ -289,28 +289,33 @@ eos
|
|
289
289
|
# parameter_empty?('')
|
290
290
|
# # => true
|
291
291
|
#
|
292
|
-
#
|
292
|
+
# @param [Mixed] parameter The tested parameter
|
293
|
+
# @return [String]
|
294
|
+
#
|
293
295
|
def parameter_empty?(parameter)
|
294
296
|
parameter.nil? || parameter.empty?
|
295
297
|
end
|
296
298
|
|
297
299
|
# Protected: Get cookbook copyright
|
298
300
|
#
|
299
|
-
#
|
301
|
+
# @return [String]
|
302
|
+
#
|
300
303
|
def cookbook_copyright
|
301
304
|
config[:cookbook_copyright] || 'YOUR_COMPANY_NAME'
|
302
305
|
end
|
303
306
|
|
304
307
|
# Protected: Get maintener email
|
305
308
|
#
|
306
|
-
#
|
309
|
+
# @return [String]
|
310
|
+
#
|
307
311
|
def cookbook_email
|
308
312
|
config[:cookbook_email] || 'YOUR_EMAIL'
|
309
313
|
end
|
310
314
|
|
311
315
|
# Protected: Get license name
|
312
316
|
#
|
313
|
-
#
|
317
|
+
# @return [String]
|
318
|
+
#
|
314
319
|
def cookbook_license
|
315
320
|
((config[:cookbook_license] != 'false') &&
|
316
321
|
config[:cookbook_license]) || 'none'
|
@@ -318,14 +323,16 @@ eos
|
|
318
323
|
|
319
324
|
# Protected: Get readme format
|
320
325
|
#
|
321
|
-
#
|
326
|
+
# @return [String]
|
327
|
+
#
|
322
328
|
def cookbook_readme_format
|
323
329
|
((config[:readme_format] != 'false') && config[:readme_format]) || 'md'
|
324
330
|
end
|
325
331
|
|
326
332
|
# Protected: Get files directory
|
327
333
|
#
|
328
|
-
#
|
334
|
+
# @return [String]
|
335
|
+
#
|
329
336
|
def files_directory
|
330
337
|
File.expand_path(
|
331
338
|
'../../../../files',
|
@@ -335,7 +342,8 @@ eos
|
|
335
342
|
|
336
343
|
# Protected: Get templates directory
|
337
344
|
#
|
338
|
-
#
|
345
|
+
# @return [String]
|
346
|
+
#
|
339
347
|
def templates_directory
|
340
348
|
File.expand_path(
|
341
349
|
'../../../../templates',
|
@@ -6,15 +6,14 @@ module KnifeSkeleton
|
|
6
6
|
class Template
|
7
7
|
# Static: Render template with Erubis
|
8
8
|
#
|
9
|
-
# template - Template string to used for rendering
|
10
|
-
# data - Data binding
|
11
|
-
#
|
12
9
|
# Examples:
|
13
10
|
#
|
14
11
|
# create_cookbook_directories('Hello <%= title %>', {title: 'GoT'})
|
15
12
|
# # => "Hello GoT"
|
16
13
|
#
|
17
|
-
#
|
14
|
+
# @param [String] template Template string to used for rendering
|
15
|
+
# @param [String] data Data binding
|
16
|
+
# return [String]
|
18
17
|
def self.render(template, data)
|
19
18
|
eruby = Erubis::Eruby.new(template)
|
20
19
|
output = eruby.result(data)
|
metadata
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-skeleton
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pierre Rambaud
|
8
|
+
- Antoine Rouyer
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
@@ -30,14 +31,14 @@ dependencies:
|
|
30
31
|
requirements:
|
31
32
|
- - ~>
|
32
33
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
34
|
+
version: '2.7'
|
34
35
|
type: :runtime
|
35
36
|
prerelease: false
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
37
38
|
requirements:
|
38
39
|
- - ~>
|
39
40
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
41
|
+
version: '2.7'
|
41
42
|
- !ruby/object:Gem::Dependency
|
42
43
|
name: rake
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,6 +116,7 @@ description: ! 'Knife plugin to create skeleton with rubocop, chefspec, kitchen,
|
|
115
116
|
'
|
116
117
|
email:
|
117
118
|
- pierre.rambaud@numergy.com
|
119
|
+
- antoine.rouyer@numergy.com
|
118
120
|
executables: []
|
119
121
|
extensions: []
|
120
122
|
extra_rdoc_files: []
|