chef-cli 3.1.6 → 5.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +4 -0
- data/chef-cli.gemspec +1 -1
- data/lib/chef-cli/command/export.rb +14 -6
- data/lib/chef-cli/command/generate.rb +5 -3
- data/lib/chef-cli/command/generator_commands/cookbook.rb +32 -2
- data/lib/chef-cli/command/generator_commands/recipe.rb +7 -0
- data/lib/chef-cli/helpers.rb +4 -4
- data/lib/chef-cli/policyfile_services/export_repo.rb +9 -13
- data/lib/chef-cli/skeletons/code_generator/recipes/cookbook.rb +50 -24
- data/lib/chef-cli/skeletons/code_generator/recipes/recipe.rb +11 -3
- data/lib/chef-cli/skeletons/code_generator/templates/default/delivery-project.toml.erb +36 -0
- data/lib/chef-cli/skeletons/code_generator/templates/default/recipe.yml.erb +18 -0
- data/lib/chef-cli/version.rb +1 -1
- data/spec/unit/command/export_spec.rb +18 -1
- data/spec/unit/command/generate_spec.rb +7 -0
- data/spec/unit/command/generator_commands/cookbook_spec.rb +91 -226
- data/spec/unit/command/generator_commands/recipe_spec.rb +34 -0
- data/spec/unit/helpers_spec.rb +111 -0
- data/spec/unit/policyfile_services/export_repo_spec.rb +51 -2
- metadata +7 -14
- data/lib/chef-cli/command/generator_commands/build_cookbook.rb +0 -126
- data/lib/chef-cli/skeletons/code_generator/files/default/build_cookbook/README.md +0 -146
- data/lib/chef-cli/skeletons/code_generator/files/default/build_cookbook/kitchen.yml +0 -21
- data/lib/chef-cli/skeletons/code_generator/files/default/build_cookbook/test-fixture-recipe.rb +0 -8
- data/lib/chef-cli/skeletons/code_generator/files/default/delivery-config.json +0 -17
- data/lib/chef-cli/skeletons/code_generator/recipes/build_cookbook.rb +0 -175
- data/lib/chef-cli/skeletons/code_generator/templates/default/build_cookbook/Berksfile.erb +0 -7
- data/lib/chef-cli/skeletons/code_generator/templates/default/build_cookbook/metadata.rb.erb +0 -10
- data/lib/chef-cli/skeletons/code_generator/templates/default/build_cookbook/recipe.rb.erb +0 -9
- data/spec/unit/command/generator_commands/build_cookbook_spec.rb +0 -377
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f07d3f568a94bf70e402ec732f96521233dafdf566b60bdc0ef9fad586e29af
|
4
|
+
data.tar.gz: 6b060133bceeb79fde35c38a41b7c4b6e4a71520f1f631cf37d4f0942838c0ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c429fdd87a900cd5c9178e44edc2eccf48a517a96aa0dd58de2adf5d1d9cdb0ddac522efeacb5676b9a12284bda262030fe8f5e65909ed40e21b5d3fb23845aa
|
7
|
+
data.tar.gz: db8f7b5d1a073a314489315aa35db2554575bba13e37f1ac28c99f0795eb57233d0ae0beb1989f7aa98d0970ed0826cd96849367b1161ecf144d76fc224e9167
|
data/Gemfile
CHANGED
@@ -10,11 +10,15 @@ group :test do
|
|
10
10
|
gem "cookstyle", "=7.7.2" # this forces dependabot PRs to open which triggers cookstyle CI on the chef generate command
|
11
11
|
gem "chefstyle", "=1.6.2"
|
12
12
|
gem "test-kitchen", ">= 2.11.1"
|
13
|
+
|
13
14
|
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.6")
|
14
15
|
gem "chef-zero", "~> 14"
|
15
16
|
gem "chef", "~> 15"
|
16
17
|
gem "chef-utils", "=16.6.14"
|
17
18
|
end
|
19
|
+
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.7")
|
20
|
+
gem "ohai", "~> 16"
|
21
|
+
end
|
18
22
|
end
|
19
23
|
|
20
24
|
group :development do
|
data/chef-cli.gemspec
CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |gem|
|
|
29
29
|
gem.license = "Apache-2.0"
|
30
30
|
gem.homepage = "https://www.chef.io/"
|
31
31
|
|
32
|
-
gem.required_ruby_version = ">= 2.
|
32
|
+
gem.required_ruby_version = ">= 2.6"
|
33
33
|
|
34
34
|
gem.files = %w{Rakefile LICENSE} +
|
35
35
|
Dir.glob("Gemfile*") + # Includes Gemfile and locks
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright:: Copyright (c)
|
2
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
3
3
|
# License:: Apache License, Version 2.0
|
4
4
|
#
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -67,6 +67,11 @@ module ChefCLI
|
|
67
67
|
description: "Enable stacktraces and other debug output",
|
68
68
|
default: false
|
69
69
|
|
70
|
+
option :policy_group,
|
71
|
+
long: "--policy-group POLICY_GROUP",
|
72
|
+
description: "The policy_group to include in the export (default: 'local')",
|
73
|
+
default: nil
|
74
|
+
|
70
75
|
attr_reader :policyfile_relative_path
|
71
76
|
attr_reader :export_dir
|
72
77
|
|
@@ -120,11 +125,14 @@ module ChefCLI
|
|
120
125
|
end
|
121
126
|
|
122
127
|
def export_service
|
123
|
-
@export_service ||= PolicyfileServices::ExportRepo.new(
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
+
@export_service ||= PolicyfileServices::ExportRepo.new(
|
129
|
+
policyfile: policyfile_relative_path,
|
130
|
+
export_dir: export_dir,
|
131
|
+
root_dir: Dir.pwd,
|
132
|
+
archive: archive?,
|
133
|
+
force: config[:force],
|
134
|
+
policy_group: config[:policy_group]
|
135
|
+
)
|
128
136
|
end
|
129
137
|
|
130
138
|
def handle_error(error)
|
@@ -29,7 +29,6 @@ require_relative "generator_commands/template"
|
|
29
29
|
require_relative "generator_commands/repo"
|
30
30
|
require_relative "generator_commands/policyfile"
|
31
31
|
require_relative "generator_commands/generator_generator"
|
32
|
-
require_relative "generator_commands/build_cookbook"
|
33
32
|
require_relative "../dist"
|
34
33
|
|
35
34
|
module ChefCLI
|
@@ -56,7 +55,7 @@ module ChefCLI
|
|
56
55
|
generator(:repo, :Repo, "Generate a #{ChefCLI::Dist::INFRA_PRODUCT} code repository")
|
57
56
|
generator(:policyfile, :Policyfile, "Generate a Policyfile for use with the install/push commands")
|
58
57
|
generator(:generator, :GeneratorGenerator, "Copy #{ChefCLI::Dist::PRODUCT}'s generator cookbook so you can customize it")
|
59
|
-
generator(:'build-cookbook', :BuildCookbook, "Generate a build cookbook for use with #{ChefCLI::Dist::WORKFLOW}")
|
58
|
+
generator(:'build-cookbook', :BuildCookbook, "DEPRECATED: Generate a build cookbook for use with #{ChefCLI::Dist::WORKFLOW}")
|
60
59
|
|
61
60
|
def self.banner_headline
|
62
61
|
<<~E
|
@@ -83,6 +82,10 @@ module ChefCLI
|
|
83
82
|
end
|
84
83
|
|
85
84
|
def run(params)
|
85
|
+
if params[0] == "build-cookbook"
|
86
|
+
warn "[DEPRECATION] Chef Workflow (Delivery) is end of life (EOL) as of December 31, 2020 and this generator subcommand has been removed".freeze
|
87
|
+
return 1
|
88
|
+
end
|
86
89
|
if ( generator_spec = generator_for(params[0]) )
|
87
90
|
params.shift
|
88
91
|
generator = GeneratorCommands.build(generator_spec.class_name, params)
|
@@ -118,7 +121,6 @@ module ChefCLI
|
|
118
121
|
def have_generator?(name)
|
119
122
|
self.class.generators.map { |g| g.name.to_s }.include?(name)
|
120
123
|
end
|
121
|
-
|
122
124
|
end
|
123
125
|
end
|
124
126
|
end
|
@@ -55,10 +55,17 @@ module ChefCLI
|
|
55
55
|
boolean: true,
|
56
56
|
default: nil
|
57
57
|
|
58
|
+
option :specs,
|
59
|
+
short: "-s",
|
60
|
+
long: "--specs",
|
61
|
+
description: "Generate a cookbook with sample ChefSpec specs",
|
62
|
+
boolean: true,
|
63
|
+
default: nil
|
64
|
+
|
58
65
|
option :workflow,
|
59
66
|
short: "-w",
|
60
67
|
long: "--workflow",
|
61
|
-
description: "Generate a cookbook with a full #{ChefCLI::Dist::WORKFLOW} build cookbook.",
|
68
|
+
description: "DEPRECATED: Generate a cookbook with a full #{ChefCLI::Dist::WORKFLOW} build cookbook.",
|
62
69
|
boolean: true,
|
63
70
|
default: false
|
64
71
|
|
@@ -69,6 +76,13 @@ module ChefCLI
|
|
69
76
|
boolean: true,
|
70
77
|
default: false
|
71
78
|
|
79
|
+
option :yaml,
|
80
|
+
short: "-y",
|
81
|
+
long: "--yaml",
|
82
|
+
description: "Generate a cookbook with YAML Recipe configuration file as the default.",
|
83
|
+
boolean: true,
|
84
|
+
default: nil
|
85
|
+
|
72
86
|
option :pipeline,
|
73
87
|
long: "--pipeline PIPELINE",
|
74
88
|
description: "Use PIPELINE to set target branch to something other than master for the #{ChefCLI::Dist::WORKFLOW} build_cookbook",
|
@@ -81,6 +95,7 @@ module ChefCLI
|
|
81
95
|
@cookbook_name = nil
|
82
96
|
@policy_mode = true
|
83
97
|
@verbose = false
|
98
|
+
@specs = false
|
84
99
|
super
|
85
100
|
end
|
86
101
|
|
@@ -103,6 +118,7 @@ module ChefCLI
|
|
103
118
|
end
|
104
119
|
|
105
120
|
def emit_post_create_message
|
121
|
+
default_recipe_file = yaml ? "default.yml" : "default.rb"
|
106
122
|
if have_delivery_config?
|
107
123
|
msg("Your cookbook is ready. To setup the pipeline, type `cd #{cookbook_name_or_path}`, then run `delivery init`")
|
108
124
|
else
|
@@ -112,7 +128,7 @@ module ChefCLI
|
|
112
128
|
msg("\nWhy not start by writing an InSpec test? Tests for the default recipe are stored at:\n")
|
113
129
|
msg("test/integration/default/default_test.rb")
|
114
130
|
msg("\nIf you'd prefer to dive right in, the default recipe can be found at:")
|
115
|
-
msg("\nrecipes
|
131
|
+
msg("\nrecipes/#{default_recipe_file}\n")
|
116
132
|
end
|
117
133
|
end
|
118
134
|
|
@@ -133,11 +149,13 @@ module ChefCLI
|
|
133
149
|
Generator.add_attr_to_context(:workflow_project_git_initialized, have_git? && !cookbook_path_in_git_repo?)
|
134
150
|
|
135
151
|
Generator.add_attr_to_context(:verbose, verbose?)
|
152
|
+
Generator.add_attr_to_context(:specs, specs?)
|
136
153
|
|
137
154
|
Generator.add_attr_to_context(:use_policyfile, policy_mode?)
|
138
155
|
Generator.add_attr_to_context(:pipeline, pipeline)
|
139
156
|
Generator.add_attr_to_context(:kitchen, kitchen)
|
140
157
|
Generator.add_attr_to_context(:vscode_dir, create_vscode_dir?)
|
158
|
+
Generator.add_attr_to_context(:yaml, yaml)
|
141
159
|
end
|
142
160
|
|
143
161
|
def kitchen
|
@@ -148,6 +166,10 @@ module ChefCLI
|
|
148
166
|
config[:pipeline]
|
149
167
|
end
|
150
168
|
|
169
|
+
def yaml
|
170
|
+
config[:yaml]
|
171
|
+
end
|
172
|
+
|
151
173
|
def policy_name
|
152
174
|
cookbook_name
|
153
175
|
end
|
@@ -188,6 +210,10 @@ module ChefCLI
|
|
188
210
|
@verbose
|
189
211
|
end
|
190
212
|
|
213
|
+
def specs?
|
214
|
+
@specs
|
215
|
+
end
|
216
|
+
|
191
217
|
#
|
192
218
|
# Is there a .delivery/cli.toml in the current dir or any of the parent dirs
|
193
219
|
#
|
@@ -223,6 +249,10 @@ module ChefCLI
|
|
223
249
|
@verbose = true
|
224
250
|
end
|
225
251
|
|
252
|
+
if config[:specs]
|
253
|
+
@specs = true
|
254
|
+
end
|
255
|
+
|
226
256
|
true
|
227
257
|
end
|
228
258
|
|
@@ -26,6 +26,13 @@ module ChefCLI
|
|
26
26
|
|
27
27
|
banner "Usage: #{ChefCLI::Dist::EXEC} generate recipe [path/to/cookbook] NAME [options]"
|
28
28
|
|
29
|
+
option :yaml,
|
30
|
+
short: "-y",
|
31
|
+
long: "--yaml",
|
32
|
+
description: "Generate recipe using YAML configuration format.",
|
33
|
+
boolean: true,
|
34
|
+
default: nil
|
35
|
+
|
29
36
|
options.merge!(SharedGeneratorOptions.options)
|
30
37
|
|
31
38
|
def recipe
|
data/lib/chef-cli/helpers.rb
CHANGED
@@ -117,11 +117,11 @@ module ChefCLI
|
|
117
117
|
@omnibus_env ||=
|
118
118
|
begin
|
119
119
|
user_bin_dir = File.expand_path(File.join(Gem.user_dir, "bin"))
|
120
|
-
path = [ omnibus_bin_dir, user_bin_dir, omnibus_embedded_bin_dir, ENV["PATH"] ]
|
120
|
+
path = [ omnibus_bin_dir, user_bin_dir, omnibus_embedded_bin_dir, ENV["PATH"].split(File::PATH_SEPARATOR) ]
|
121
121
|
path << git_bin_dir if Dir.exist?(git_bin_dir)
|
122
122
|
path << git_windows_bin_dir if Dir.exist?(git_windows_bin_dir)
|
123
123
|
{
|
124
|
-
"PATH" => path.join(File::PATH_SEPARATOR),
|
124
|
+
"PATH" => path.flatten.uniq.join(File::PATH_SEPARATOR),
|
125
125
|
"GEM_ROOT" => Gem.default_dir,
|
126
126
|
"GEM_HOME" => Gem.user_dir,
|
127
127
|
"GEM_PATH" => Gem.path.join(File::PATH_SEPARATOR),
|
@@ -129,8 +129,6 @@ module ChefCLI
|
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
|
-
private
|
133
|
-
|
134
132
|
def omnibus_expand_path(*paths)
|
135
133
|
dir = File.expand_path(File.join(paths))
|
136
134
|
raise OmnibusInstallNotFound.new unless dir && File.directory?(dir)
|
@@ -138,6 +136,8 @@ module ChefCLI
|
|
138
136
|
dir
|
139
137
|
end
|
140
138
|
|
139
|
+
private
|
140
|
+
|
141
141
|
def expected_omnibus_root
|
142
142
|
File.expand_path(File.join(Gem.ruby, "..", "..", ".."))
|
143
143
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright:: Copyright (c)
|
2
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
3
3
|
# License:: Apache License, Version 2.0
|
4
4
|
#
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -33,20 +33,15 @@ module ChefCLI
|
|
33
33
|
|
34
34
|
class ExportRepo
|
35
35
|
|
36
|
-
# Policy groups provide namespaces for policies so that a Chef Infra Server can
|
37
|
-
# have multiple active iterations of a policy at once, but we don't need
|
38
|
-
# this when serving a single exported policy via Chef Zero, so hardcode
|
39
|
-
# it to a "well known" value:
|
40
|
-
POLICY_GROUP = "local".freeze
|
41
|
-
|
42
36
|
include Policyfile::StorageConfigDelegation
|
43
37
|
|
44
38
|
attr_reader :storage_config
|
45
39
|
attr_reader :root_dir
|
46
40
|
attr_reader :export_dir
|
47
41
|
attr_reader :ui
|
42
|
+
attr_reader :policy_group
|
48
43
|
|
49
|
-
def initialize(policyfile: nil, export_dir: nil, root_dir: nil, archive: false, force: false)
|
44
|
+
def initialize(policyfile: nil, export_dir: nil, root_dir: nil, archive: false, force: false, policy_group: nil)
|
50
45
|
@root_dir = root_dir
|
51
46
|
@export_dir = File.expand_path(export_dir)
|
52
47
|
@archive = archive
|
@@ -55,6 +50,8 @@ module ChefCLI
|
|
55
50
|
|
56
51
|
@policy_data = nil
|
57
52
|
@policyfile_lock = nil
|
53
|
+
@policy_group = policy_group
|
54
|
+
@policy_group ||= "local".freeze
|
58
55
|
|
59
56
|
policyfile_rel_path = policyfile || "Policyfile.rb"
|
60
57
|
policyfile_full_path = File.expand_path(policyfile_rel_path, root_dir)
|
@@ -243,7 +240,7 @@ module ChefCLI
|
|
243
240
|
#
|
244
241
|
|
245
242
|
policy_name '#{policy_name}'
|
246
|
-
policy_group '
|
243
|
+
policy_group '#{policy_group}'
|
247
244
|
|
248
245
|
use_policyfile true
|
249
246
|
policy_document_native_api true
|
@@ -301,9 +298,8 @@ module ChefCLI
|
|
301
298
|
### policy_groups/
|
302
299
|
|
303
300
|
Policy groups are used by Chef Infra Server to manage multiple revisions of the same
|
304
|
-
policy.
|
305
|
-
|
306
|
-
|
301
|
+
policy. The default "local" policy is recommended for export use since there can be
|
302
|
+
no different revisions when not utilizing a server.
|
307
303
|
README
|
308
304
|
end
|
309
305
|
end
|
@@ -389,7 +385,7 @@ module ChefCLI
|
|
389
385
|
end
|
390
386
|
|
391
387
|
def policy_group_repo_item_path
|
392
|
-
File.join(staging_dir, "policy_groups", "
|
388
|
+
File.join(staging_dir, "policy_groups", "#{policy_group}.json")
|
393
389
|
end
|
394
390
|
|
395
391
|
def dot_chef_staging_dir
|
@@ -92,43 +92,56 @@ template "#{cookbook_dir}/test/integration/default/default_test.rb" do
|
|
92
92
|
end
|
93
93
|
|
94
94
|
# ChefSpec
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
cookbook_file "#{cookbook_dir}/spec/spec_helper.rb" do
|
100
|
-
if context.use_policyfile
|
101
|
-
source 'spec_helper_policyfile.rb'
|
102
|
-
else
|
103
|
-
source 'spec_helper.rb'
|
95
|
+
if context.specs
|
96
|
+
directory "#{cookbook_dir}/spec/unit/recipes" do
|
97
|
+
recursive true
|
104
98
|
end
|
105
99
|
|
106
|
-
|
107
|
-
|
100
|
+
cookbook_file "#{cookbook_dir}/spec/spec_helper.rb" do
|
101
|
+
if context.use_policyfile
|
102
|
+
source 'spec_helper_policyfile.rb'
|
103
|
+
else
|
104
|
+
source 'spec_helper.rb'
|
105
|
+
end
|
108
106
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
107
|
+
action :create_if_missing
|
108
|
+
end
|
109
|
+
|
110
|
+
template "#{cookbook_dir}/spec/unit/recipes/default_spec.rb" do
|
111
|
+
source 'recipe_spec.rb.erb'
|
112
|
+
helpers(ChefCLI::Generator::TemplateHelper)
|
113
|
+
action :create_if_missing
|
114
|
+
end
|
113
115
|
end
|
114
116
|
|
115
117
|
# Recipes
|
116
118
|
directory "#{cookbook_dir}/recipes"
|
117
119
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
120
|
+
if context.yaml
|
121
|
+
template "#{cookbook_dir}/recipes/default.yml" do
|
122
|
+
source 'recipe.yml.erb'
|
123
|
+
helpers(ChefCLI::Generator::TemplateHelper)
|
124
|
+
action :create_if_missing
|
125
|
+
end
|
126
|
+
else
|
127
|
+
template "#{cookbook_dir}/recipes/default.rb" do
|
128
|
+
source 'recipe.rb.erb'
|
129
|
+
helpers(ChefCLI::Generator::TemplateHelper)
|
130
|
+
action :create_if_missing
|
131
|
+
end
|
122
132
|
end
|
123
133
|
|
124
134
|
# the same will be done below if workflow was enabled so avoid double work and skip this
|
125
135
|
unless context.enable_workflow
|
126
136
|
directory "#{cookbook_dir}/.delivery"
|
127
137
|
|
128
|
-
#
|
129
|
-
|
130
|
-
|
131
|
-
|
138
|
+
template "#{cookbook_dir}/.delivery/project.toml" do
|
139
|
+
variables(
|
140
|
+
specs: context.specs
|
141
|
+
)
|
142
|
+
source 'delivery-project.toml.erb'
|
143
|
+
helpers(ChefCLI::Generator::TemplateHelper)
|
144
|
+
action :create_if_missing
|
132
145
|
end
|
133
146
|
end
|
134
147
|
|
@@ -177,4 +190,17 @@ if context.vscode_dir
|
|
177
190
|
end
|
178
191
|
end
|
179
192
|
|
180
|
-
|
193
|
+
if context.enable_workflow
|
194
|
+
warn "\n---------WARNING---------\nThe --workflow flag is deprecated as #{ChefCLI::Dist::WORKFLOW} is EOL as of December 2020.\n\nThis flag will be ignored and will be removed in a future release.\n-------------------------\n\n"
|
195
|
+
directory "#{cookbook_dir}/.delivery"
|
196
|
+
|
197
|
+
template "#{cookbook_dir}/.delivery/project.toml" do
|
198
|
+
variables(
|
199
|
+
specs: context.specs
|
200
|
+
)
|
201
|
+
source 'delivery-project.toml.erb'
|
202
|
+
helpers(ChefCLI::Generator::TemplateHelper)
|
203
|
+
action :create_if_missing
|
204
|
+
end
|
205
|
+
|
206
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
context = ChefCLI::Generator.context
|
2
2
|
cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
|
3
3
|
recipe_path = File.join(cookbook_dir, 'recipes', "#{context.new_file_basename}.rb")
|
4
|
+
recipe_path_yml = File.join(cookbook_dir, 'recipes', "#{context.new_file_basename}.yml")
|
4
5
|
spec_helper_path = File.join(cookbook_dir, 'spec', 'spec_helper.rb')
|
5
6
|
spec_dir = File.join(cookbook_dir, 'spec', 'unit', 'recipes')
|
6
7
|
spec_path = File.join(spec_dir, "#{context.new_file_basename}_spec.rb")
|
@@ -44,7 +45,14 @@ template inspec_path do
|
|
44
45
|
end
|
45
46
|
|
46
47
|
# Recipe
|
47
|
-
|
48
|
-
|
49
|
-
|
48
|
+
if context.yaml
|
49
|
+
template recipe_path_yml do
|
50
|
+
source 'recipe.yml.erb'
|
51
|
+
helpers(ChefCLI::Generator::TemplateHelper)
|
52
|
+
end
|
53
|
+
else
|
54
|
+
template recipe_path do
|
55
|
+
source 'recipe.rb.erb'
|
56
|
+
helpers(ChefCLI::Generator::TemplateHelper)
|
57
|
+
end
|
50
58
|
end
|