chef-cli 5.5.6 → 5.6.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 +4 -4
- data/lib/chef-cli/command/generate.rb +12 -6
- data/lib/chef-cli/command/generator_commands/chef_exts/quieter_doc_formatter.rb +9 -0
- data/lib/chef-cli/command/generator_commands/input.rb +37 -0
- data/lib/chef-cli/command/generator_commands/profile.rb +37 -0
- data/lib/chef-cli/command/generator_commands/waiver.rb +37 -0
- data/lib/chef-cli/generator.rb +15 -0
- data/lib/chef-cli/skeletons/code_generator/recipes/cookbook.rb +13 -14
- data/lib/chef-cli/skeletons/code_generator/recipes/input.rb +13 -0
- data/lib/chef-cli/skeletons/code_generator/recipes/profile.rb +22 -0
- data/lib/chef-cli/skeletons/code_generator/recipes/waiver.rb +13 -0
- data/lib/chef-cli/skeletons/code_generator/templates/default/compliance_dir_README.md.erb +25 -0
- data/lib/chef-cli/skeletons/code_generator/templates/default/compliance_profile_control.rb.erb +14 -0
- data/lib/chef-cli/skeletons/code_generator/templates/default/compliance_profile_inspec.yml.erb +16 -0
- data/lib/chef-cli/skeletons/code_generator/templates/default/input.yml.erb +8 -0
- data/lib/chef-cli/skeletons/code_generator/templates/default/waiver.yml.erb +10 -0
- data/lib/chef-cli/version.rb +1 -1
- data/spec/unit/command/generator_commands/cookbook_spec.rb +2 -0
- data/spec/unit/command/generator_commands/input_spec.rb +31 -0
- data/spec/unit/command/generator_commands/profile_spec.rb +34 -0
- data/spec/unit/command/generator_commands/waiver_spec.rb +31 -0
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8f6584f3f7241a9b2a700c32a5c2562b1d6010527a453405c42c1fba4511a16
|
4
|
+
data.tar.gz: 2b038f40f4f990f3bfeca2c33a4478f23e34895d7a76c8c4f8cfa7bfdc6e522f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '06735193dc5c884a7260fa1d2376e7428635dcffbe846602483c1489c2670a451417ea2de0b22687e82216f76eb2351e1459b246c37ca20b4cdf31bcdf2e15a3'
|
7
|
+
data.tar.gz: 49d095de278a34f76c6fb10943aaaf1589d8bc936e25f916b569ca2beaff20173b5657e953dda4314a8e1f9557662a9c4c375f392920fd17f0a29986ae8f3ab0
|
@@ -29,6 +29,9 @@ 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/input"
|
33
|
+
require_relative "generator_commands/profile"
|
34
|
+
require_relative "generator_commands/waiver"
|
32
35
|
require_relative "../dist"
|
33
36
|
|
34
37
|
module ChefCLI
|
@@ -45,16 +48,19 @@ module ChefCLI
|
|
45
48
|
generators << GeneratorCommand.new(name, class_name, description)
|
46
49
|
end
|
47
50
|
|
48
|
-
generator(:cookbook, :Cookbook, "Generate a single cookbook")
|
49
|
-
generator(:recipe, :Recipe, "Generate a new recipe")
|
50
51
|
generator(:attribute, :Attribute, "Generate an attributes file")
|
51
|
-
generator(:
|
52
|
+
generator(:cookbook, :Cookbook, "Generate a single cookbook")
|
52
53
|
generator(:file, :CookbookFile, "Generate a cookbook file")
|
54
|
+
generator(:generator, :GeneratorGenerator, "Copy #{ChefCLI::Dist::PRODUCT}'s generator cookbook so you can customize it")
|
53
55
|
generator(:helpers, :Helpers, "Generate a cookbook helper file in libraries")
|
54
|
-
generator(:
|
55
|
-
generator(:repo, :Repo, "Generate a #{ChefCLI::Dist::INFRA_PRODUCT} code repository")
|
56
|
+
generator(:input, :Input, "Generate a Compliance Phase #{ChefCLI::Dist::INSPEC_PRODUCT} Input file")
|
56
57
|
generator(:policyfile, :Policyfile, "Generate a Policyfile for use with the install/push commands")
|
57
|
-
generator(:
|
58
|
+
generator(:profile, :Profile, "Generate a Compliance Phase #{ChefCLI::Dist::INSPEC_PRODUCT} profile")
|
59
|
+
generator(:recipe, :Recipe, "Generate a new recipe")
|
60
|
+
generator(:repo, :Repo, "Generate a #{ChefCLI::Dist::INFRA_PRODUCT} code repository")
|
61
|
+
generator(:resource, :Resource, "Generate a custom resource")
|
62
|
+
generator(:template, :Template, "Generate a file template")
|
63
|
+
generator(:waiver, :Waiver, "Generate a Compliance Phase #{ChefCLI::Dist::INSPEC_PRODUCT} Waiver file")
|
58
64
|
|
59
65
|
def self.banner_headline
|
60
66
|
<<~E
|
@@ -32,5 +32,14 @@ module ChefCLI
|
|
32
32
|
|
33
33
|
# Called when cookbook loading starts.
|
34
34
|
def library_load_start(file_count); end
|
35
|
+
|
36
|
+
# Called when cookbook loading starts.
|
37
|
+
def profiles_load_start; end
|
38
|
+
|
39
|
+
# Called when cookbook loading starts.
|
40
|
+
def inputs_load_start; end
|
41
|
+
|
42
|
+
# Called when cookbook loading starts.
|
43
|
+
def waivers_load_start; end
|
35
44
|
end
|
36
45
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Chef Software Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require_relative "cookbook_code_file"
|
19
|
+
require_relative "../../dist"
|
20
|
+
|
21
|
+
module ChefCLI
|
22
|
+
module Command
|
23
|
+
module GeneratorCommands
|
24
|
+
# chef generate input [path/to/cookbook_root] NAME
|
25
|
+
class Input < CookbookCodeFile
|
26
|
+
|
27
|
+
banner "Usage: #{ChefCLI::Dist::EXEC} generate input [path/to/cookbook] NAME [options]"
|
28
|
+
|
29
|
+
options.merge!(SharedGeneratorOptions.options)
|
30
|
+
|
31
|
+
def recipe
|
32
|
+
"input"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Chef Software Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require_relative "cookbook_code_file"
|
19
|
+
require_relative "../../dist"
|
20
|
+
|
21
|
+
module ChefCLI
|
22
|
+
module Command
|
23
|
+
module GeneratorCommands
|
24
|
+
# chef generate profile [path/to/cookbook_root] NAME
|
25
|
+
class Profile < CookbookCodeFile
|
26
|
+
|
27
|
+
banner "Usage: #{ChefCLI::Dist::EXEC} generate profile [path/to/cookbook] NAME [options]"
|
28
|
+
|
29
|
+
options.merge!(SharedGeneratorOptions.options)
|
30
|
+
|
31
|
+
def recipe
|
32
|
+
"profile"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Chef Software Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require_relative "cookbook_code_file"
|
19
|
+
require_relative "../../dist"
|
20
|
+
|
21
|
+
module ChefCLI
|
22
|
+
module Command
|
23
|
+
module GeneratorCommands
|
24
|
+
# chef generate waiver [path/to/cookbook_root] NAME
|
25
|
+
class Waiver < CookbookCodeFile
|
26
|
+
|
27
|
+
banner "Usage: #{ChefCLI::Dist::EXEC} generate waiver [path/to/cookbook] NAME [options]"
|
28
|
+
|
29
|
+
options.merge!(SharedGeneratorOptions.options)
|
30
|
+
|
31
|
+
def recipe
|
32
|
+
"waiver"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/chef-cli/generator.rb
CHANGED
@@ -68,6 +68,21 @@ module ChefCLI
|
|
68
68
|
Time.now.year
|
69
69
|
end
|
70
70
|
|
71
|
+
def self.license_long(license = nil)
|
72
|
+
case license
|
73
|
+
when "apachev2"
|
74
|
+
"Apache-2.0"
|
75
|
+
when "mit"
|
76
|
+
"MIT"
|
77
|
+
when "gplv2"
|
78
|
+
"GPL-2.0"
|
79
|
+
when "gplv3"
|
80
|
+
"GPL-3.0"
|
81
|
+
else
|
82
|
+
"All Rights Reserved"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
71
86
|
# Prints the short description of the license, suitable for use in a
|
72
87
|
# preamble to a file. Optionally specify a comment to prepend to each line.
|
73
88
|
def license_description(comment = nil)
|
@@ -9,23 +9,10 @@ generator_desc('Ensuring correct cookbook content')
|
|
9
9
|
directory cookbook_dir
|
10
10
|
|
11
11
|
# metadata.rb
|
12
|
-
spdx_license = case context.license
|
13
|
-
when 'apachev2'
|
14
|
-
'Apache-2.0'
|
15
|
-
when 'mit'
|
16
|
-
'MIT'
|
17
|
-
when 'gplv2'
|
18
|
-
'GPL-2.0'
|
19
|
-
when 'gplv3'
|
20
|
-
'GPL-3.0'
|
21
|
-
else
|
22
|
-
'All Rights Reserved'
|
23
|
-
end
|
24
|
-
|
25
12
|
template "#{cookbook_dir}/metadata.rb" do
|
26
13
|
helpers(ChefCLI::Generator::TemplateHelper)
|
27
14
|
variables(
|
28
|
-
spdx_license:
|
15
|
+
spdx_license: ChefCLI::Generator::TemplateHelper.license_long(context.license)
|
29
16
|
)
|
30
17
|
action :create_if_missing
|
31
18
|
end
|
@@ -131,6 +118,18 @@ else
|
|
131
118
|
end
|
132
119
|
end
|
133
120
|
|
121
|
+
# compliance phase
|
122
|
+
%w(inputs profiles waivers).each do |dir|
|
123
|
+
directory "#{cookbook_dir}/compliance/#{dir}" do
|
124
|
+
recursive true
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
template "#{cookbook_dir}/compliance/README.md" do
|
129
|
+
source 'compliance_dir_README.md.erb'
|
130
|
+
action :create_if_missing
|
131
|
+
end
|
132
|
+
|
134
133
|
# git
|
135
134
|
if context.have_git
|
136
135
|
unless context.skip_git_init
|
@@ -0,0 +1,13 @@
|
|
1
|
+
context = ChefCLI::Generator.context
|
2
|
+
cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
|
3
|
+
input_dir = File.join(cookbook_dir, 'compliance', 'inputs')
|
4
|
+
input_path = File.join(input_dir, "#{context.new_file_basename}.yml")
|
5
|
+
|
6
|
+
directory input_dir do
|
7
|
+
recursive true
|
8
|
+
end
|
9
|
+
|
10
|
+
template input_path do
|
11
|
+
source 'input.yml.erb'
|
12
|
+
helpers(ChefCLI::Generator::TemplateHelper)
|
13
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
context = ChefCLI::Generator.context
|
2
|
+
cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
|
3
|
+
profile_dir = File.join(cookbook_dir, 'compliance', 'profiles', "#{context.new_file_basename}")
|
4
|
+
control_dir = File.join(profile_dir, 'controls')
|
5
|
+
|
6
|
+
directory control_dir do
|
7
|
+
recursive true
|
8
|
+
end
|
9
|
+
|
10
|
+
template "#{profile_dir}/inspec.yml" do
|
11
|
+
source 'compliance_profile_inspec.yml.erb'
|
12
|
+
helpers(ChefCLI::Generator::TemplateHelper)
|
13
|
+
variables(
|
14
|
+
spdx_license: ChefCLI::Generator::TemplateHelper.license_long(context.license),
|
15
|
+
profile_name: context.new_file_basename
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
template "#{control_dir}/example.rb" do
|
20
|
+
source 'compliance_profile_control.rb.erb'
|
21
|
+
helpers(ChefCLI::Generator::TemplateHelper)
|
22
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
context = ChefCLI::Generator.context
|
2
|
+
cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
|
3
|
+
waiver_dir = File.join(cookbook_dir, 'compliance', 'waivers')
|
4
|
+
waiver_path = File.join(waiver_dir, "#{context.new_file_basename}.yml")
|
5
|
+
|
6
|
+
directory waiver_dir do
|
7
|
+
recursive true
|
8
|
+
end
|
9
|
+
|
10
|
+
template waiver_path do
|
11
|
+
source 'waiver.yml.erb'
|
12
|
+
helpers(ChefCLI::Generator::TemplateHelper)
|
13
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# compliance
|
2
|
+
|
3
|
+
This directory contains <%= ChefCLI::Dist::INSPEC_PRODUCT %> profile, waiver and input objects which are used with the <%= ChefCLI::Dist::INFRA_PRODUCT %> Compliance Phase.
|
4
|
+
|
5
|
+
Detailed information on the <%= ChefCLI::Dist::INFRA_PRODUCT %> Compliance Phase can be found in the [Chef Documentation](https://docs.chef.io/chef_compliance_phase/).
|
6
|
+
|
7
|
+
```plain
|
8
|
+
./compliance
|
9
|
+
├── inputs
|
10
|
+
├── profiles
|
11
|
+
└── waivers
|
12
|
+
```
|
13
|
+
|
14
|
+
Use the `<%= ChefCLI::Dist::EXEC %> generate` command from <%= ChefCLI::Dist::PRODUCT %> to create content for these directories:
|
15
|
+
|
16
|
+
```sh
|
17
|
+
# Generate a <%= ChefCLI::Dist::INSPEC_PRODUCT %> profile
|
18
|
+
<%= ChefCLI::Dist::EXEC %> generate profile PROFILE_NAME
|
19
|
+
|
20
|
+
# Generate a <%= ChefCLI::Dist::INSPEC_PRODUCT %> waiver file
|
21
|
+
<%= ChefCLI::Dist::EXEC %> generate waiver WAIVER_NAME
|
22
|
+
|
23
|
+
# Generate a <%= ChefCLI::Dist::INSPEC_PRODUCT %> input file
|
24
|
+
<%= ChefCLI::Dist::EXEC %> generate input INPUT_NAME
|
25
|
+
```
|
data/lib/chef-cli/skeletons/code_generator/templates/default/compliance_profile_control.rb.erb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Cookbook:: <%= cookbook_name %>
|
2
|
+
|
3
|
+
# The <%= ChefCLI::Dist::INSPEC_PRODUCT %> reference, with examples and extensive documentation, can be
|
4
|
+
# found at https://docs.chef.io/inspec/resources/
|
5
|
+
|
6
|
+
control 'example_control' do
|
7
|
+
impact 0.7
|
8
|
+
title 'Example Control'
|
9
|
+
desc 'This is an example control. Replace with real test content.'
|
10
|
+
|
11
|
+
describe user('root'), :skip do
|
12
|
+
it { should exist }
|
13
|
+
end
|
14
|
+
end
|
data/lib/chef-cli/skeletons/code_generator/templates/default/compliance_profile_inspec.yml.erb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
# Cookbook:: <%= cookbook_name %>
|
3
|
+
|
4
|
+
# The <%= ChefCLI::Dist::INSPEC_PRODUCT %> reference, with examples and extensive documentation, can be
|
5
|
+
# found at https://docs.chef.io/inspec/profiles/
|
6
|
+
|
7
|
+
name: <%= @profile_name %>
|
8
|
+
title: <%= @profile_name %>
|
9
|
+
maintainer: <%= copyright_holder %>
|
10
|
+
copyright: <%= copyright_holder %>
|
11
|
+
copyright_email: <%= email %>
|
12
|
+
license: <%= @spdx_license %>
|
13
|
+
summary: A <%= ChefCLI::Dist::INSPEC_PRODUCT %> Compliance Profile
|
14
|
+
version: 0.1.0
|
15
|
+
supports:
|
16
|
+
platform: os
|
@@ -0,0 +1,10 @@
|
|
1
|
+
---
|
2
|
+
# Cookbook:: <%= cookbook_name %>
|
3
|
+
|
4
|
+
# Additional information can be found on the <%= ChefCLI::Dist::INSPEC_PRODUCT %> Documentation site https://docs.chef.io/inspec/waivers/
|
5
|
+
|
6
|
+
# Example Syntax:
|
7
|
+
control_id_to_waive:
|
8
|
+
expiration_date: 2050-12-31
|
9
|
+
run: false
|
10
|
+
justification: "This is the text that will be included with the InSpec report supplying the reason this control is waived."
|
data/lib/chef-cli/version.rb
CHANGED
@@ -44,6 +44,7 @@ describe ChefCLI::Command::GeneratorCommands::Cookbook do
|
|
44
44
|
CHANGELOG.md
|
45
45
|
recipes
|
46
46
|
recipes/default.rb
|
47
|
+
compliance/README.md
|
47
48
|
}
|
48
49
|
end
|
49
50
|
|
@@ -67,6 +68,7 @@ describe ChefCLI::Command::GeneratorCommands::Cookbook do
|
|
67
68
|
spec/unit
|
68
69
|
spec/unit/recipes
|
69
70
|
spec/unit/recipes/default_spec.rb
|
71
|
+
compliance/README.md
|
70
72
|
}
|
71
73
|
end
|
72
74
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Chef Software Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require "spec_helper"
|
19
|
+
require "shared/a_file_generator"
|
20
|
+
require "chef-cli/command/generator_commands/input"
|
21
|
+
|
22
|
+
describe ChefCLI::Command::GeneratorCommands::Input do
|
23
|
+
|
24
|
+
include_examples "a file generator" do
|
25
|
+
|
26
|
+
let(:generator_name) { "input" }
|
27
|
+
let(:generated_files) { [ "compliance/inputs/new_input.yml" ] }
|
28
|
+
let(:new_file_name) { "new_input" }
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Chef Software Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require "spec_helper"
|
19
|
+
require "shared/a_file_generator"
|
20
|
+
require "chef-cli/command/generator_commands/profile"
|
21
|
+
|
22
|
+
describe ChefCLI::Command::GeneratorCommands::Profile do
|
23
|
+
|
24
|
+
include_examples "a file generator" do
|
25
|
+
|
26
|
+
let(:generator_name) { "profile" }
|
27
|
+
let(:generated_files) {
|
28
|
+
[ "compliance/profiles/new_profile/inspec.yml",
|
29
|
+
"compliance/profiles/new_profile/controls/example.rb" ]
|
30
|
+
}
|
31
|
+
let(:new_file_name) { "new_profile" }
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Chef Software Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require "spec_helper"
|
19
|
+
require "shared/a_file_generator"
|
20
|
+
require "chef-cli/command/generator_commands/waiver"
|
21
|
+
|
22
|
+
describe ChefCLI::Command::GeneratorCommands::Waiver do
|
23
|
+
|
24
|
+
include_examples "a file generator" do
|
25
|
+
|
26
|
+
let(:generator_name) { "waiver" }
|
27
|
+
let(:generated_files) { [ "compliance/waivers/new_waiver.yml" ] }
|
28
|
+
let(:new_file_name) { "new_waiver" }
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chef Software, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-cli
|
@@ -248,11 +248,14 @@ files:
|
|
248
248
|
- lib/chef-cli/command/generator_commands/cookbook_file.rb
|
249
249
|
- lib/chef-cli/command/generator_commands/generator_generator.rb
|
250
250
|
- lib/chef-cli/command/generator_commands/helpers.rb
|
251
|
+
- lib/chef-cli/command/generator_commands/input.rb
|
251
252
|
- lib/chef-cli/command/generator_commands/policyfile.rb
|
253
|
+
- lib/chef-cli/command/generator_commands/profile.rb
|
252
254
|
- lib/chef-cli/command/generator_commands/recipe.rb
|
253
255
|
- lib/chef-cli/command/generator_commands/repo.rb
|
254
256
|
- lib/chef-cli/command/generator_commands/resource.rb
|
255
257
|
- lib/chef-cli/command/generator_commands/template.rb
|
258
|
+
- lib/chef-cli/command/generator_commands/waiver.rb
|
256
259
|
- lib/chef-cli/command/install.rb
|
257
260
|
- lib/chef-cli/command/push.rb
|
258
261
|
- lib/chef-cli/command/push_archive.rb
|
@@ -350,11 +353,14 @@ files:
|
|
350
353
|
- lib/chef-cli/skeletons/code_generator/recipes/cookbook.rb
|
351
354
|
- lib/chef-cli/skeletons/code_generator/recipes/cookbook_file.rb
|
352
355
|
- lib/chef-cli/skeletons/code_generator/recipes/helpers.rb
|
356
|
+
- lib/chef-cli/skeletons/code_generator/recipes/input.rb
|
353
357
|
- lib/chef-cli/skeletons/code_generator/recipes/policyfile.rb
|
358
|
+
- lib/chef-cli/skeletons/code_generator/recipes/profile.rb
|
354
359
|
- lib/chef-cli/skeletons/code_generator/recipes/recipe.rb
|
355
360
|
- lib/chef-cli/skeletons/code_generator/recipes/repo.rb
|
356
361
|
- lib/chef-cli/skeletons/code_generator/recipes/resource.rb
|
357
362
|
- lib/chef-cli/skeletons/code_generator/recipes/template.rb
|
363
|
+
- lib/chef-cli/skeletons/code_generator/recipes/waiver.rb
|
358
364
|
- lib/chef-cli/skeletons/code_generator/templates/default/CHANGELOG.md.erb
|
359
365
|
- lib/chef-cli/skeletons/code_generator/templates/default/LICENSE.all_rights.erb
|
360
366
|
- lib/chef-cli/skeletons/code_generator/templates/default/LICENSE.apachev2.erb
|
@@ -364,8 +370,12 @@ files:
|
|
364
370
|
- lib/chef-cli/skeletons/code_generator/templates/default/Policyfile.rb.erb
|
365
371
|
- lib/chef-cli/skeletons/code_generator/templates/default/README.md.erb
|
366
372
|
- lib/chef-cli/skeletons/code_generator/templates/default/attribute.rb.erb
|
373
|
+
- lib/chef-cli/skeletons/code_generator/templates/default/compliance_dir_README.md.erb
|
374
|
+
- lib/chef-cli/skeletons/code_generator/templates/default/compliance_profile_control.rb.erb
|
375
|
+
- lib/chef-cli/skeletons/code_generator/templates/default/compliance_profile_inspec.yml.erb
|
367
376
|
- lib/chef-cli/skeletons/code_generator/templates/default/cookbook_file.erb
|
368
377
|
- lib/chef-cli/skeletons/code_generator/templates/default/helpers.rb.erb
|
378
|
+
- lib/chef-cli/skeletons/code_generator/templates/default/input.yml.erb
|
369
379
|
- lib/chef-cli/skeletons/code_generator/templates/default/inspec_default_test.rb.erb
|
370
380
|
- lib/chef-cli/skeletons/code_generator/templates/default/kitchen.yml.erb
|
371
381
|
- lib/chef-cli/skeletons/code_generator/templates/default/kitchen_dokken.yml.erb
|
@@ -377,6 +387,7 @@ files:
|
|
377
387
|
- lib/chef-cli/skeletons/code_generator/templates/default/repo/gitignore.erb
|
378
388
|
- lib/chef-cli/skeletons/code_generator/templates/default/resource.rb.erb
|
379
389
|
- lib/chef-cli/skeletons/code_generator/templates/default/template.erb
|
390
|
+
- lib/chef-cli/skeletons/code_generator/templates/default/waiver.yml.erb
|
380
391
|
- lib/chef-cli/ui.rb
|
381
392
|
- lib/chef-cli/version.rb
|
382
393
|
- lib/kitchen/provisioner/chef_zero_capture.rb
|
@@ -411,11 +422,14 @@ files:
|
|
411
422
|
- spec/unit/command/generator_commands/cookbook_spec.rb
|
412
423
|
- spec/unit/command/generator_commands/generator_generator_spec.rb
|
413
424
|
- spec/unit/command/generator_commands/helpers_spec.rb
|
425
|
+
- spec/unit/command/generator_commands/input_spec.rb
|
414
426
|
- spec/unit/command/generator_commands/policyfile_spec.rb
|
427
|
+
- spec/unit/command/generator_commands/profile_spec.rb
|
415
428
|
- spec/unit/command/generator_commands/recipe_spec.rb
|
416
429
|
- spec/unit/command/generator_commands/repo_spec.rb
|
417
430
|
- spec/unit/command/generator_commands/resource_spec.rb
|
418
431
|
- spec/unit/command/generator_commands/template_spec.rb
|
432
|
+
- spec/unit/command/generator_commands/waiver_spec.rb
|
419
433
|
- spec/unit/command/install_spec.rb
|
420
434
|
- spec/unit/command/push_archive_spec.rb
|
421
435
|
- spec/unit/command/push_spec.rb
|
@@ -634,11 +648,14 @@ test_files:
|
|
634
648
|
- spec/unit/command/generator_commands/cookbook_spec.rb
|
635
649
|
- spec/unit/command/generator_commands/generator_generator_spec.rb
|
636
650
|
- spec/unit/command/generator_commands/helpers_spec.rb
|
651
|
+
- spec/unit/command/generator_commands/input_spec.rb
|
637
652
|
- spec/unit/command/generator_commands/policyfile_spec.rb
|
653
|
+
- spec/unit/command/generator_commands/profile_spec.rb
|
638
654
|
- spec/unit/command/generator_commands/recipe_spec.rb
|
639
655
|
- spec/unit/command/generator_commands/repo_spec.rb
|
640
656
|
- spec/unit/command/generator_commands/resource_spec.rb
|
641
657
|
- spec/unit/command/generator_commands/template_spec.rb
|
658
|
+
- spec/unit/command/generator_commands/waiver_spec.rb
|
642
659
|
- spec/unit/command/install_spec.rb
|
643
660
|
- spec/unit/command/push_archive_spec.rb
|
644
661
|
- spec/unit/command/push_spec.rb
|