meez 0.0.10 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +8 -8
  2. data/bin/meez +0 -1
  3. data/lib/meez/meez.rb +78 -14
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTg3OGY0MTMwMmI1NzNkNTA4YzY5MzllN2EwM2EwMGZiYjdiYjQxMg==
4
+ NzZmNmI0NTFjNTE0YmJiZmQ3OGQ3ZDk5YTZiODAyMzY5MzQwNjk3Mg==
5
5
  data.tar.gz: !binary |-
6
- NWQ1ZDg2NzE0MTFlMmJjM2Q5NWE5Yzk2ZDYxM2FkMWM1ZWY1MTNiYw==
6
+ ZGFlZWI2MDBlODRkNWNiZmY3NDZlYjIxN2Q0ODFkNWM3MzJjNjgxYg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MDQzMGM1NWEzMjEzZGVlYzUxYzA2NTUyNmE0M2UxNDc2MDJmMTM0ZjgwNDFk
10
- YjMyODkzYzMzNjFhMDk4ZWZhOWU3MmE4MjUyYzhiZTNiZmI5YWZjNmEwMGE0
11
- YjA2NjYxYjQ5Nzg0MDBlZjQ5OTAxY2Y4YjNjMzllYTE5M2YyODU=
9
+ NTZlNjlhMGVhZGFlNzVkMjgwNTIzNDRkZDQ3MTU1NzBiZDg4ZTI2MWQzMDA4
10
+ OTBhZTYyYjY5ZWU2OTFmYjQ4ZDVjM2UxZjUxYzQ2Y2YyMmY5MDg3NThmNDlm
11
+ YjE3MDI1NTc5MjZhZTIxODk0N2RiMzU5OGJhYWNjNzFlMzU0OTg=
12
12
  data.tar.gz: !binary |-
13
- Y2MyYTJmZDEwM2JmMjljYzhkMDQyZjU2OWE4MjMzODE0YTNhMTUwOTdjZGQ4
14
- NjgxMWI2MWI0YWI3MTI3MTFkODU1M2YzYTViZDVlY2FmM2JjNTk0MzA1NzEz
15
- M2U1MmI4ZTdjOGE0ODk3YmY5NTY4YmE1NWQ2MGZmMmY2OTYwZDg=
13
+ OTMyYWFiMWZlMzY5M2ZjZWEzMjcxMjAyNzg2YTgwNjFhNjM3NDA1Zjc0ZDM4
14
+ MDAzZTQxODRlZmNiMDRkOTY3MTNhYTgwZTFjMTFlZjRkYjIwYzFkY2ZjMzMz
15
+ Y2E4NmMyODNmNjc5NmIzNTJhNDBkZDAyNDBjZGNhMzA2NTU5YjM=
data/bin/meez CHANGED
@@ -44,7 +44,6 @@ unless options[:help]
44
44
  puts " $ cd #{File.join(options[:path], cookbook_name)}"
45
45
  puts ' $ bundle install'
46
46
  puts ' $ bundle exec berks install'
47
- puts ' $ bundle exec strainer test'
48
47
  else
49
48
  puts 'Need to specify a cookbook'
50
49
  puts opt_parser
data/lib/meez/meez.rb CHANGED
@@ -7,8 +7,8 @@ class Meez
7
7
  init_cookbook(cookbook_name, options)
8
8
  init_berkshelf(cookbook_name, options)
9
9
  init_vagrant(cookbook_name, options)
10
- init_strainer(cookbook_name, options)
11
10
  init_knife(cookbook_name, options)
11
+ init_rakefile(cookbook_name, options)
12
12
  init_rubocop(cookbook_name, options)
13
13
  init_foodcritic(cookbook_name, options)
14
14
  init_chefspec(cookbook_name, options)
@@ -72,7 +72,6 @@ class Meez
72
72
  require 'kitchen'
73
73
  require 'kitchen/generator/init'
74
74
  Kitchen::Generator::Init.new([], {}, destination_root: path).invoke_all
75
- File.open(File.join(path, 'Strainerfile'), 'a') { |f| f.write("kitchen: bundle exec kitchen test --destroy=always\n") }
76
75
  File.open(File.join(path, '.kitchen.yml'), 'w') do |file|
77
76
  contents = <<-EOF
78
77
  ---
@@ -177,18 +176,80 @@ end
177
176
  file.write(contents)
178
177
  end
179
178
 
179
+ puts "\tAppend .gitignore"
180
+ File.open(File.join(path, '.gitignore'), 'a') { |f| f.write(".coverage/*\n") }
180
181
  puts "\tAppend Gemfile"
181
182
  File.open(File.join(path, 'Gemfile'), 'a') { |f| f.write("gem 'chefspec', '~> 3.2'\n") }
182
- File.open(File.join(path, 'Strainerfile'), 'a') { |f| f.write("chefspec: bundle exec rspec $SANDBOX/$COOKBOOK/test/unit/spec\n") }
183
183
  end
184
184
 
185
- def self.init_strainer(cookbook_name, options)
186
- puts '* Initializing Strainer'
185
+ def self.init_rakefile(cookbook_name, options)
186
+ puts '* Initializing Rakefile'
187
187
  path = File.join(options[:path], cookbook_name)
188
- puts "\tCreating #{File.join(path, 'Strainerfile')}"
189
- File.open(File.join(path, 'Strainerfile'), 'w') { |f| f.write("# Strainerfile\n") }
188
+ puts "\t Creating #{File.join(path, 'Rakefile')}"
189
+ File.open(File.join(path, 'Rakefile'), 'w') do |file|
190
+ contents = <<-EOF
191
+ # Encoding: utf-8
192
+ require 'bundler/setup'
193
+
194
+ namespace :style do
195
+ require 'rubocop/rake_task'
196
+ desc 'Run Ruby style checks'
197
+ Rubocop::RakeTask.new(:ruby)
198
+
199
+ require 'foodcritic'
200
+ desc 'Run Chef style checks'
201
+ FoodCritic::Rake::LintTask.new(:chef)
202
+ end
203
+
204
+ desc 'Run all style checks'
205
+ task style: ['style:chef', 'style:ruby']
206
+
207
+ require 'kitchen'
208
+ desc 'Run Test Kitchen integration tests'
209
+ task :integration do
210
+ Kitchen.logger = Kitchen.default_file_logger
211
+ Kitchen::Config.new.instances.each do |instance|
212
+ instance.test(:always)
213
+ end
214
+ end
215
+
216
+ require 'rspec/core/rake_task'
217
+ desc 'Run ChefSpec unit tests'
218
+ RSpec::Core::RakeTask.new(:spec) do |t, args|
219
+ t.rspec_opts = 'test/unit/spec'
220
+ end
221
+
222
+ desc "Runs knife cookbook test"
223
+ task :knife do
224
+ Rake::Task[:prepare_sandbox].execute
225
+ sh "bundle exec knife cookbook test #{cookbook_name} -c test/.chef/knife.rb -o \#{sandbox_path}/../"
226
+ Rake::Task[:nuke_sandbox].execute
227
+ end
228
+
229
+ task :prepare_sandbox do
230
+ files = %w{*.md *.rb attributes definitions files libraries providers recipes resources templates}
231
+
232
+ rm_rf sandbox_path
233
+ mkdir_p sandbox_path
234
+ cp_r Dir.glob("{\#{files.join(',')}}"), sandbox_path
235
+ end
236
+
237
+ task :nuke_sandbox do
238
+ rm_rf sandbox_path
239
+ end
240
+
241
+ private
242
+ def sandbox_path
243
+ File.join(%w( / tmp cookbooks #{cookbook_name} ))
244
+ end
245
+
246
+ # The default rake task should just run it all
247
+ task default: ['style', 'knife', 'spec', 'integration']
248
+ EOF
249
+ file.write(contents)
250
+ end
190
251
  puts "\tAppend Gemfile"
191
- File.open(File.join(path, 'Gemfile'), 'a') { |f| f.write("gem 'strainer', '~> 3.3.0'\n") }
252
+ File.open(File.join(path, 'Gemfile'), 'a') { |f| f.write("gem 'rake'\n") }
192
253
  end
193
254
 
194
255
  def self.init_rubocop(cookbook_name, options)
@@ -196,8 +257,6 @@ end
196
257
  path = File.join(options[:path], cookbook_name)
197
258
  puts "\tAppend Gemfile"
198
259
  File.open(File.join(path, 'Gemfile'), 'a') { |f| f.write("gem 'rubocop', '~> 0.18'\n") }
199
- puts "\tAppend Strainerfile"
200
- File.open(File.join(path, 'Strainerfile'), 'a') { |f| f.write("rubocop: bundle exec rubocop $COOKBOOK\n") }
201
260
  end
202
261
 
203
262
  def self.init_knife(cookbook_name, options)
@@ -205,8 +264,15 @@ end
205
264
  path = File.join(options[:path], cookbook_name)
206
265
  puts "\tAppend Gemfile"
207
266
  File.open(File.join(path, 'Gemfile'), 'a') { |f| f.write("gem 'chef', '~> 11.8'\n") }
208
- puts "\tAppend Strainerfile"
209
- File.open(File.join(path, 'Strainerfile'), 'a') { |f| f.write("knife test: bundle exec knife cookbook test $COOKBOOK\n") }
267
+ config_path = File.join(path, 'test', '.chef')
268
+ FileUtils.mkdir_p(config_path)
269
+ File.open(File.join(config_path, 'knife.rb'), 'w') do |file|
270
+ contents = <<-EOF
271
+ cache_type 'BasicFile'
272
+ cache_options(:path => "\#{ENV['HOME']}/.chef/checksums")
273
+ EOF
274
+ file.write(contents)
275
+ end
210
276
  end
211
277
 
212
278
  def self.init_foodcritic(cookbook_name, options)
@@ -214,8 +280,6 @@ end
214
280
  path = File.join(options[:path], cookbook_name)
215
281
  puts "\tAppend Gemfile"
216
282
  File.open(File.join(path, 'Gemfile'), 'a') { |f| f.write("gem 'foodcritic', '~> 3.0.0'\n") }
217
- puts "\tAppend Strainerfile"
218
- File.open(File.join(path, 'Strainerfile'), 'a') { |f| f.write("foodcritic: bundle exec foodcritic -f any $SANDBOX/$COOKBOOK\n") }
219
283
  end
220
284
 
221
285
  def self.init_serverspec(cookbook_name, options)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meez
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Czarkowski
@@ -68,7 +68,7 @@ dependencies:
68
68
  version: 2.0.12
69
69
  description: ! "`Meez` (slang for `mise en place`) will create an opinionated chef
70
70
  cookbook skeleton complete with testing suite including:\n berkshelf, chefspec,
71
- test kitchen, strainer, foodcritic, server spec\n\n"
71
+ test kitchen, foodcritic, server spec\n\n"
72
72
  email: paul.czarkowski@rackspace.com
73
73
  executables:
74
74
  - meez