bourdain 1.2.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/Gemfile +11 -0
- data/Rakefile +19 -0
- data/Readme.md +1 -0
- data/TODO.md +41 -0
- data/VERSION +1 -0
- data/bin/tony +54 -0
- data/bin/tony-bump +3 -0
- data/bin/tony-check +3 -0
- data/bin/tony-generate +3 -0
- data/bourdain.gemspec +25 -0
- data/install-or-upgrade.sh +4 -0
- data/lib/bourdain/helpers/config.rb +12 -0
- data/lib/bourdain/helpers/locals.rb +17 -0
- data/lib/bourdain/helpers/logger.rb +41 -0
- data/lib/bourdain/helpers/parser.rb +76 -0
- data/lib/bourdain/helpers/registry.rb +53 -0
- data/lib/bourdain/helpers.rb +32 -0
- data/lib/bourdain/metadata.rb +19 -0
- data/lib/bourdain/resources/checks/bourdain.rb +71 -0
- data/lib/bourdain/resources/checks/chef.rb +35 -0
- data/lib/bourdain/resources/checks/cookbooks.rb +97 -0
- data/lib/bourdain/resources/checks/hooks.rb +67 -0
- data/lib/bourdain/resources/checks/ssh_config.rb +61 -0
- data/lib/bourdain/resources/checks.rb +36 -0
- data/lib/bourdain/resources/commands/bump.rb +74 -0
- data/lib/bourdain/resources/commands/check.rb +103 -0
- data/lib/bourdain/resources/commands/generate.rb +33 -0
- data/lib/bourdain/resources/commands.rb +10 -0
- data/lib/bourdain/resources/generators/attribute.rb +43 -0
- data/lib/bourdain/resources/generators/cookbook.rb +125 -0
- data/lib/bourdain/resources/generators/recipe.rb +54 -0
- data/lib/bourdain/resources/generators.rb +22 -0
- data/lib/bourdain/resources.rb +104 -0
- data/lib/bourdain.rb +3 -0
- data/templates/chef/environment.json +8 -0
- data/templates/chef/role.json +9 -0
- data/templates/cookbook/Berksfile +3 -0
- data/templates/cookbook/Readme.md +1 -0
- data/templates/cookbook/VERSION +1 -0
- data/templates/cookbook/Vagrantfile +19 -0
- data/templates/cookbook/attributes/example.rb +24 -0
- data/templates/cookbook/busser_minitest.rb +7 -0
- data/templates/cookbook/gitignore +26 -0
- data/templates/cookbook/kitchen.yml +23 -0
- data/templates/cookbook/metadata.rb +10 -0
- data/templates/cookbook/pre-commit +80 -0
- data/templates/cookbook/recipes/example.rb +38 -0
- data/test.sh +12 -0
- metadata +165 -0
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
|
4
|
+
module Bourdain
|
5
|
+
class Resource
|
6
|
+
attr_reader :status, :spec, :opts, :raw_usage, :resource_name
|
7
|
+
|
8
|
+
def self.log= log ; @@log = log end
|
9
|
+
|
10
|
+
def self.resource_name ; raise 'not implemented' end
|
11
|
+
|
12
|
+
def self.raw_usage ; raise 'not implemented' end
|
13
|
+
|
14
|
+
def self.usage type, raw_usage
|
15
|
+
type = type.to_s
|
16
|
+
|
17
|
+
metaclass = class << self ; self ; end
|
18
|
+
|
19
|
+
metaclass.send(:define_method, 'raw_usage') do
|
20
|
+
raw_usage.gsub(/^ +/, '')
|
21
|
+
end
|
22
|
+
|
23
|
+
metaclass.send(:define_method, 'resource_name') do
|
24
|
+
raw_usage.lines.to_a[1].split(' ').first
|
25
|
+
end
|
26
|
+
|
27
|
+
metaclass.send(:define_method, 'resource_type') do
|
28
|
+
type
|
29
|
+
end
|
30
|
+
|
31
|
+
metaclass.send(:define_method, 'spec') do
|
32
|
+
self.spec ||= Bourdain::Helpers::UsageParser.parse(self.class.raw_usage)
|
33
|
+
end
|
34
|
+
|
35
|
+
Bourdain::Registry.register(type, self)
|
36
|
+
end
|
37
|
+
|
38
|
+
def initialize argv
|
39
|
+
@status = 0
|
40
|
+
@spec = Bourdain::Helpers::UsageParser.parse(self.class.raw_usage)
|
41
|
+
@opts = trollop_with_spec(self.class.resource_type, argv, @spec)
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
protected
|
46
|
+
def log ; @@log ||= Bourdain::Logger.new end
|
47
|
+
|
48
|
+
def error! ; @status = 1 end
|
49
|
+
|
50
|
+
def require_versionfile!
|
51
|
+
return true if File::exists?('VERSION')
|
52
|
+
log.fatal "I don't see any VERSION file around here..."
|
53
|
+
@status = 1
|
54
|
+
false
|
55
|
+
end
|
56
|
+
|
57
|
+
def require_cookbook!
|
58
|
+
return true if File::exists?('metadata.rb')
|
59
|
+
log.fatal "I don't see any metadata around here, is this a cookbook?"
|
60
|
+
@status = 1
|
61
|
+
false
|
62
|
+
end
|
63
|
+
|
64
|
+
def require_chef!
|
65
|
+
return true if File::exists?('Howto.md')
|
66
|
+
log.fatal "I don't see any Chef stuff around here, is this the Chef repo?"
|
67
|
+
@status = 1
|
68
|
+
false
|
69
|
+
end
|
70
|
+
|
71
|
+
def trollop_with_spec subcommand, argv, spec
|
72
|
+
subcommand = " #{subcommand}" unless subcommand.nil?
|
73
|
+
Trollop::options(argv) do
|
74
|
+
banner Bourdain::ART + "\n\n" + <<-EOS.gsub(/^ /, '')
|
75
|
+
#{spec[:desc]}
|
76
|
+
|
77
|
+
Usage: tony#{subcommand} #{spec[:usage]}
|
78
|
+
#{format_resources spec[:resources]}
|
79
|
+
Options:
|
80
|
+
EOS
|
81
|
+
spec[:opts].each do |opt|
|
82
|
+
send(:opt, opt[:long], opt[:desc], opt[:opts])
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
module Trollop
|
92
|
+
class Parser
|
93
|
+
def format_resources rs
|
94
|
+
rs.map do |r|
|
95
|
+
"\n#{r.capitalize}s:\n" +
|
96
|
+
Bourdain::Registry.details(r) * "\n" + "\n"
|
97
|
+
end.join("\n")
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
require_relative 'resources/checks'
|
103
|
+
require_relative 'resources/commands'
|
104
|
+
require_relative 'resources/generators'
|
data/lib/bourdain.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# <%= name %>
|
@@ -0,0 +1 @@
|
|
1
|
+
0.0.0
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- mode: ruby -*-
|
3
|
+
# vi: set ft=ruby :
|
4
|
+
Vagrant.configure('2') do |config|
|
5
|
+
config.omnibus.chef_version = :latest
|
6
|
+
config.berkshelf.enabled = true
|
7
|
+
config.vm.define 'vagrant' do |node|
|
8
|
+
node.vm.box = 'chef/ubuntu-14.04'
|
9
|
+
node.vm.hostname = 'vagrant'
|
10
|
+
node.vm.provision :chef_solo do |chef|
|
11
|
+
chef.log_level = :debug
|
12
|
+
chef.json = {}
|
13
|
+
chef.run_list = %w(
|
14
|
+
recipe[apt]
|
15
|
+
recipe[<%= name %>]
|
16
|
+
)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<% if name == 'default' %>
|
2
|
+
# User for <%= cookbook_name %> directories, files, and services
|
3
|
+
default['<%= cookbook_name %>']['user'] = '<%= cookbook_name %>'
|
4
|
+
|
5
|
+
# Directory to install the <%= cookbook_name %> source
|
6
|
+
default['<%= cookbook_name %>']['home'] = '/opt/<%= cookbook_name %>'
|
7
|
+
|
8
|
+
# Directory to store the <%= cookbook_name %> logs
|
9
|
+
default['<%= cookbook_name %>']['logs'] = '/var/log/<%= cookbook_name %>'
|
10
|
+
|
11
|
+
# Directory to store the <%= cookbook_name %> data
|
12
|
+
default['<%= cookbook_name %>']['data'] = '/var/data/<%= cookbook_name %>'
|
13
|
+
|
14
|
+
# Version of <%= cookbook_name %> to install
|
15
|
+
default['<%= cookbook_name %>']['version'] = '1.0.0'
|
16
|
+
|
17
|
+
# Full URL (%pattern-sensitive) for <%= cookbook_name %> releases
|
18
|
+
default['<%= cookbook_name %>']['url'] = \
|
19
|
+
'http://example.com/<%= cookbook_name %>%{version}.tar.gz'
|
20
|
+
|
21
|
+
# SHA-256 checksum for the bundled release
|
22
|
+
default['<%= cookbook_name %>']['checksum'] = \
|
23
|
+
'...'
|
24
|
+
<% end %>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
.vagrant
|
2
|
+
Berksfile.lock
|
3
|
+
*~
|
4
|
+
*#
|
5
|
+
.#*
|
6
|
+
\#*#
|
7
|
+
.*.sw[a-z]
|
8
|
+
*.un~
|
9
|
+
/cookbooks
|
10
|
+
|
11
|
+
# Bundler
|
12
|
+
Gemfile.lock
|
13
|
+
bin/*
|
14
|
+
.bundle/*
|
15
|
+
|
16
|
+
.kitchen/
|
17
|
+
.kitchen.local.yml
|
18
|
+
|
19
|
+
.DS_Store
|
20
|
+
*.tmp
|
21
|
+
*.out
|
22
|
+
*.pid
|
23
|
+
*.log
|
24
|
+
tmp
|
25
|
+
|
26
|
+
.chef/cookbooks
|
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
driver_plugin: vagrant
|
3
|
+
driver_config:
|
4
|
+
require_chef_omnibus: true
|
5
|
+
|
6
|
+
provisioner:
|
7
|
+
name: chef_solo
|
8
|
+
cookbook_files_glob: "**/*"
|
9
|
+
|
10
|
+
platforms:
|
11
|
+
- name: ubuntu-12.04
|
12
|
+
driver_config:
|
13
|
+
box: chef/ubuntu-12.04
|
14
|
+
- name: ubuntu-14.04
|
15
|
+
driver_config:
|
16
|
+
box: chef/ubuntu-14.04
|
17
|
+
|
18
|
+
suites:
|
19
|
+
- name: default
|
20
|
+
run_list:
|
21
|
+
- recipe[apt]
|
22
|
+
- recipe[<%= name %>]
|
23
|
+
attributes: {}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
name '<%= name %>'
|
2
|
+
version File.read(File.join(File.dirname(__FILE__), 'VERSION')).strip
|
3
|
+
description 'Install and configure <%= name %>'
|
4
|
+
long_description 'Install and configure <%= name %>'
|
5
|
+
maintainer 'FIRSTNAME LASTNAME / Blue Jeans Network'
|
6
|
+
maintainer_email 'USERNAME@bluejeans.com'
|
7
|
+
|
8
|
+
# depends 'ark'
|
9
|
+
|
10
|
+
# suggests 'bjn_ruby'
|
@@ -0,0 +1,80 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Pre-commit hook for checking cookbook standards and bumping versions
|
4
|
+
#
|
5
|
+
# set -x
|
6
|
+
set -e
|
7
|
+
|
8
|
+
function normalize {
|
9
|
+
arg="$1"
|
10
|
+
[ -z "$arg" ] && arg="yes"
|
11
|
+
echo "$arg" | tr '[:upper:]' '[:lower:]'
|
12
|
+
}
|
13
|
+
|
14
|
+
|
15
|
+
ROOT="$(git rev-parse --show-toplevel)"
|
16
|
+
NAME="$(basename $ROOT)"
|
17
|
+
|
18
|
+
cd $ROOT
|
19
|
+
echo "Checking cookbook..."
|
20
|
+
echo
|
21
|
+
|
22
|
+
find . -name .DS_Store -exec rm {} \; # INF-4970
|
23
|
+
|
24
|
+
bundle exec knife cookbook test $NAME -o ".."
|
25
|
+
bundle exec foodcritic .
|
26
|
+
|
27
|
+
exec < /dev/tty # Enable reading from STDIN in commit hook
|
28
|
+
|
29
|
+
|
30
|
+
if [ -f .kitchen.yml ] ; then
|
31
|
+
read -p "Now, you ran test kitchen, right? (yes|no) " plea
|
32
|
+
plea="$(normalize $plea)"
|
33
|
+
while [ "yes" != "$plea" -a "no" != "$plea" ] ; do
|
34
|
+
echo "Hey man, 'yes' or 'no' please."
|
35
|
+
read -p "But really, you ran test kitchen? (yes|no) " plea
|
36
|
+
plea="$(normalize $plea)"
|
37
|
+
done
|
38
|
+
if [ "no" == "$plea" ] ; then
|
39
|
+
echo "Thanks for your honesty. Bailing!"
|
40
|
+
exit 1
|
41
|
+
fi
|
42
|
+
echo "All right then..."
|
43
|
+
fi
|
44
|
+
|
45
|
+
if [ -f VERSION ] ; then
|
46
|
+
echo
|
47
|
+
read -p "Should I bump the cookbook version? (yes|no|major|minor) " plea
|
48
|
+
plea="$(normalize $plea)"
|
49
|
+
while [ -n "$plea" -a "yes" != "$plea" -a "no" != "$plea" -a "major" != "$plea" -a "minor" != "$plea" ] ; do
|
50
|
+
echo "I only understand 'yes', 'no', major', and 'minor'"
|
51
|
+
read -p "So should I bump it? (yes|no|major|minor) " plea
|
52
|
+
plea="$(normalize $plea)"
|
53
|
+
done
|
54
|
+
|
55
|
+
|
56
|
+
if [ "$plea" == "no" ] ; then
|
57
|
+
echo "No version bump for you, then!"
|
58
|
+
echo "Current version $(cat VERSION)."
|
59
|
+
fi
|
60
|
+
|
61
|
+
if [ "$plea" == "major" ] ; then
|
62
|
+
echo "Bumping the major version..."
|
63
|
+
bundle exec tony bump major
|
64
|
+
fi
|
65
|
+
|
66
|
+
if [ "$plea" == "minor" ] ; then
|
67
|
+
echo "Bumping the minor version..."
|
68
|
+
bundle exec tony bump minor
|
69
|
+
fi
|
70
|
+
|
71
|
+
if [ "$plea" == "yes" ] ; then
|
72
|
+
echo "Bumping the patch version..."
|
73
|
+
bundle exec tony bump
|
74
|
+
fi
|
75
|
+
|
76
|
+
git add VERSION
|
77
|
+
fi
|
78
|
+
|
79
|
+
echo
|
80
|
+
echo "Finished."
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: <%= cookbook_name %>
|
3
|
+
# Recipe:: <%= name %>
|
4
|
+
#
|
5
|
+
# Copyright (C) <%= Time.now.year %> Blue Jeans Network
|
6
|
+
#
|
7
|
+
<% if name == 'default' %>
|
8
|
+
# group node['<%= cookbook_name %>']['user'] do
|
9
|
+
# system true
|
10
|
+
# end
|
11
|
+
|
12
|
+
# user node['<%= cookbook_name %>']['user'] do
|
13
|
+
# gid node['<%= cookbook_name %>']['user']
|
14
|
+
# shell '/bin/false'
|
15
|
+
# system true
|
16
|
+
# end
|
17
|
+
|
18
|
+
# directory node['<%= cookbook_name %>']['logs'] do
|
19
|
+
# owner node['<%= cookbook_name %>']['user']
|
20
|
+
# group node['<%= cookbook_name %>']['user']
|
21
|
+
# recursive true
|
22
|
+
# end
|
23
|
+
|
24
|
+
# directory node['<%= cookbook_name %>']['data'] do
|
25
|
+
# owner node['<%= cookbook_name %>']['user']
|
26
|
+
# group node['<%= cookbook_name %>']['user']
|
27
|
+
# recursive true
|
28
|
+
# end
|
29
|
+
|
30
|
+
# ark '<%= cookbook_name %>' do
|
31
|
+
# url node['<%= cookbook_name %>']['url']
|
32
|
+
# checksum node['<%= cookbook_name %>']['checksum']
|
33
|
+
# version node['<%= cookbook_name %>']['version']
|
34
|
+
# home_dir node['<%= cookbook_name %>']['home']
|
35
|
+
# owner node['<%= cookbook_name %>']['user']
|
36
|
+
# group node['<%= cookbook_name %>']['user']
|
37
|
+
# end
|
38
|
+
<% end %>
|
data/test.sh
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
plea=no
|
3
|
+
read -p "You ran test kitch, right? (yes/no) " plea
|
4
|
+
while [ "yes" != "$plea" -a "no" != "$plea" ] ; do
|
5
|
+
echo "Hey, man, 'yes' or 'no' please."
|
6
|
+
read -p "But, really you ran test kitchen? (yes/no) " plea
|
7
|
+
done
|
8
|
+
if [ "no" == "$plea" ] ; then
|
9
|
+
echo "Thanks for your honesty. Bailing!"
|
10
|
+
exit 1
|
11
|
+
fi
|
12
|
+
echo "All right then..."
|
metadata
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bourdain
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.2.13
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sean Clemmer
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-12-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: pmap
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: gitlab
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: trollop
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: colorize
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activesupport
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: Tools for badass chefs.
|
84
|
+
email: sclemmer@bluejeans.com
|
85
|
+
executables:
|
86
|
+
- tony
|
87
|
+
- tony-bump
|
88
|
+
- tony-check
|
89
|
+
- tony-generate
|
90
|
+
extensions: []
|
91
|
+
extra_rdoc_files: []
|
92
|
+
files:
|
93
|
+
- ".gitignore"
|
94
|
+
- Gemfile
|
95
|
+
- Rakefile
|
96
|
+
- Readme.md
|
97
|
+
- TODO.md
|
98
|
+
- VERSION
|
99
|
+
- bin/tony
|
100
|
+
- bin/tony-bump
|
101
|
+
- bin/tony-check
|
102
|
+
- bin/tony-generate
|
103
|
+
- bourdain.gemspec
|
104
|
+
- install-or-upgrade.sh
|
105
|
+
- lib/bourdain.rb
|
106
|
+
- lib/bourdain/helpers.rb
|
107
|
+
- lib/bourdain/helpers/config.rb
|
108
|
+
- lib/bourdain/helpers/locals.rb
|
109
|
+
- lib/bourdain/helpers/logger.rb
|
110
|
+
- lib/bourdain/helpers/parser.rb
|
111
|
+
- lib/bourdain/helpers/registry.rb
|
112
|
+
- lib/bourdain/metadata.rb
|
113
|
+
- lib/bourdain/resources.rb
|
114
|
+
- lib/bourdain/resources/checks.rb
|
115
|
+
- lib/bourdain/resources/checks/bourdain.rb
|
116
|
+
- lib/bourdain/resources/checks/chef.rb
|
117
|
+
- lib/bourdain/resources/checks/cookbooks.rb
|
118
|
+
- lib/bourdain/resources/checks/hooks.rb
|
119
|
+
- lib/bourdain/resources/checks/ssh_config.rb
|
120
|
+
- lib/bourdain/resources/commands.rb
|
121
|
+
- lib/bourdain/resources/commands/bump.rb
|
122
|
+
- lib/bourdain/resources/commands/check.rb
|
123
|
+
- lib/bourdain/resources/commands/generate.rb
|
124
|
+
- lib/bourdain/resources/generators.rb
|
125
|
+
- lib/bourdain/resources/generators/attribute.rb
|
126
|
+
- lib/bourdain/resources/generators/cookbook.rb
|
127
|
+
- lib/bourdain/resources/generators/recipe.rb
|
128
|
+
- templates/chef/environment.json
|
129
|
+
- templates/chef/role.json
|
130
|
+
- templates/cookbook/Berksfile
|
131
|
+
- templates/cookbook/Readme.md
|
132
|
+
- templates/cookbook/VERSION
|
133
|
+
- templates/cookbook/Vagrantfile
|
134
|
+
- templates/cookbook/attributes/example.rb
|
135
|
+
- templates/cookbook/busser_minitest.rb
|
136
|
+
- templates/cookbook/gitignore
|
137
|
+
- templates/cookbook/kitchen.yml
|
138
|
+
- templates/cookbook/metadata.rb
|
139
|
+
- templates/cookbook/pre-commit
|
140
|
+
- templates/cookbook/recipes/example.rb
|
141
|
+
- test.sh
|
142
|
+
homepage: http://wiki.bluejeansnet.com/operations/bourdain
|
143
|
+
licenses: []
|
144
|
+
metadata: {}
|
145
|
+
post_install_message:
|
146
|
+
rdoc_options: []
|
147
|
+
require_paths:
|
148
|
+
- lib
|
149
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
requirements: []
|
160
|
+
rubyforge_project:
|
161
|
+
rubygems_version: 2.2.2
|
162
|
+
signing_key:
|
163
|
+
specification_version: 4
|
164
|
+
summary: Tools for badass chefs
|
165
|
+
test_files: []
|