knife-cookbook-doc 0.25.0 → 0.29.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE.md +47 -0
- data/.gitignore +2 -0
- data/.travis.yml +0 -1
- data/CHANGELOG.md +28 -0
- data/CONTRIBUTING.md +27 -10
- data/Rakefile +9 -0
- data/fixture/README-expected.md +10 -0
- data/fixture/libraries/default.rb +7 -0
- data/lib/chef/knife/README.md.erb +19 -1
- data/lib/chef/knife/cookbook_doc.rb +1 -0
- data/lib/knife_cookbook_doc/libraries_model.rb +13 -0
- data/lib/knife_cookbook_doc/rake_task.rb +1 -0
- data/lib/knife_cookbook_doc/readme_model.rb +44 -1
- data/lib/knife_cookbook_doc/resource_model.rb +8 -4
- data/lib/knife_cookbook_doc/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d4e4e61d176043dd41fa77782ac36203bc1251a
|
4
|
+
data.tar.gz: 49a72076fe65ea3f15878479e7c709394e2bc14c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 325f8c3e22e8f67778480106847aafbccc2d7da9d58831005f3fa09b7e3de3c4710c9a05e6023718a8669c064e51c94f3cc8cf5305752704e5d6a587d5c89fae
|
7
|
+
data.tar.gz: 876de6b5caff31196e93bd7dd71c8b5fb1c6bec5725a95c24644595ae19954de6a043d1e987be44df56c67c1e376eec46bec027bcd9ef285ce0b7393347e97da
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<!--
|
2
|
+
Thanks for your interest in the project. I appreciate bugs filed and PRs submitted!
|
3
|
+
Please make sure that you are familiar with and follow the Code of Conduct for
|
4
|
+
this project (found in the CODE_OF_CONDUCT.md file).
|
5
|
+
|
6
|
+
Please fill out this template with all the relevant information so we can
|
7
|
+
understand what's going on and fix the issue.
|
8
|
+
|
9
|
+
I may ask you to submit the fix (after giving some direction).
|
10
|
+
-->
|
11
|
+
|
12
|
+
Environment:
|
13
|
+
|
14
|
+
<!--
|
15
|
+
Please provide the version of this project where the issue occurred as well as the
|
16
|
+
versions of other environmental factors. This could be virtual machine version, os
|
17
|
+
version, browser version etc.
|
18
|
+
-->
|
19
|
+
|
20
|
+
Relevant code or config:
|
21
|
+
|
22
|
+
```
|
23
|
+
|
24
|
+
```
|
25
|
+
|
26
|
+
What you did:
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
What happened:
|
31
|
+
|
32
|
+
<!-- Please provide the full error message/screenshots/anything -->
|
33
|
+
|
34
|
+
Reproduction repository:
|
35
|
+
|
36
|
+
<!--
|
37
|
+
If possible, please create a repository that reproduces the issue with the
|
38
|
+
minimal amount of code possible. It is highly recommended you take the time
|
39
|
+
to read "How to create a Minimal, Complete, and Verifiable example" at
|
40
|
+
https://stackoverflow.com/help/mcve
|
41
|
+
-->
|
42
|
+
|
43
|
+
Problem description:
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
Suggested solution:
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,31 @@
|
|
1
|
+
# v0.29.0 (Jun 26 2020)
|
2
|
+
|
3
|
+
* Extract descriptions from `libraries/*.rb`. Submitted by Joe Nuspl.
|
4
|
+
|
5
|
+
# v0.28.0 (Jun 11 2020)
|
6
|
+
|
7
|
+
* If `Berksfile` exists, add source_url links to cookbooks. Submitted by Joe Nuspl.
|
8
|
+
|
9
|
+
# v0.27.0 (Jun 20 2019)
|
10
|
+
|
11
|
+
* Add support for Chef 15. Submitted by grozan.
|
12
|
+
|
13
|
+
# v0.26.0 (Mar 4 2019)
|
14
|
+
|
15
|
+
* Display `lazy` defaults as such. Submitted by Joe Nuspl.
|
16
|
+
|
17
|
+
# v0.25.2 (Dec 18 2018)
|
18
|
+
|
19
|
+
* Re-release gem with the appropriate version.
|
20
|
+
|
21
|
+
# v0.24.2 (Dec 17 2018)
|
22
|
+
|
23
|
+
* Add chef_versions support. Submitted by Nikolay Antsiferov.
|
24
|
+
|
25
|
+
# v0.25.0 (Mar 7 2018)
|
26
|
+
|
27
|
+
* Remove deprecated metadata for >= Chef 13. Submitted by Jamie Tanna.
|
28
|
+
|
1
29
|
# v0.24.1 (Oct 2 2017)
|
2
30
|
|
3
31
|
* Fix the markdown spacing for maintainer/source/issues URL. Submitted by Jamie Tanna.
|
data/CONTRIBUTING.md
CHANGED
@@ -1,19 +1,34 @@
|
|
1
1
|
# How to Contribute
|
2
2
|
|
3
|
-
|
3
|
+
We'd love to accept your patches and contributions to this project. Pull requests are part of
|
4
|
+
what makes open source great. There are just a few small guidelines you need to follow.
|
4
5
|
|
5
|
-
|
6
|
-
* Create your feature branch (`git checkout -b my-new-feature`)
|
7
|
-
* Commit your changes (`git commit -am 'Add some feature'`)
|
8
|
-
* Push to the branch (`git push origin my-new-feature`)
|
9
|
-
* Create new Pull Request
|
6
|
+
## Code of Conduct
|
10
7
|
|
11
|
-
|
8
|
+
Participation in this project comes under the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md)
|
9
|
+
|
10
|
+
## Submitting code via Pull Requests
|
11
|
+
|
12
|
+
- We follow the [Github Pull Request Model](https://help.github.com/articles/about-pull-requests/) for
|
13
|
+
all contributions.
|
14
|
+
- For large bodies of work, we recommend creating an issue outlining the feature that you wish to build,
|
15
|
+
and describing how it will be implemented. This gives a chance for review to happen early, and ensures
|
16
|
+
no wasted effort occurs.
|
17
|
+
- All submissions, will require review before being merged.
|
18
|
+
- Finally - *Thanks* for considering submitting code to the project!
|
19
|
+
|
20
|
+
## Formatting
|
21
|
+
|
22
|
+
When submitting pull requests, make sure to do the following:
|
23
|
+
|
24
|
+
- Maintain the same code style as the rest of the project.
|
25
|
+
- Remove trailing whitespace. Many editors will do this automatically.
|
26
|
+
- Ensure any new files have [a trailing newline](https://stackoverflow.com/questions/5813311/no-newline-at-end-of-file)
|
12
27
|
|
13
28
|
## How to speed the merging of pull requests
|
14
29
|
|
15
|
-
* Describe your changes in the CHANGELOG.
|
16
|
-
* Give yourself some credit in the appropriate place (usually the CHANGELOG).
|
30
|
+
* Describe your changes in the CHANGELOG.md (if present).
|
31
|
+
* Give yourself some credit in the appropriate place (usually the CHANGELOG.md).
|
17
32
|
* Make commits of logical units.
|
18
33
|
* Ensure your commit messages help others understand what you are doing and why.
|
19
34
|
* Check for unnecessary whitespace with `git diff --check` before committing.
|
@@ -23,4 +38,6 @@ Pester us if we don't get your Pull Requests merged in a timely fashion. :)
|
|
23
38
|
## Additional Resources
|
24
39
|
|
25
40
|
* [General GitHub documentation](http://help.github.com/)
|
26
|
-
* [
|
41
|
+
* [How to write a good Git Commit message](https://chris.beams.io/posts/git-commit/) -
|
42
|
+
Great way to make sure your Pull Requests get accepted.
|
43
|
+
* [An Open Source Etiquette Guidebook](https://css-tricks.com/open-source-etiquette-guidebook/#article-header-id-1)
|
data/Rakefile
CHANGED
@@ -4,3 +4,12 @@ require 'rake/clean'
|
|
4
4
|
task :default => :build
|
5
5
|
|
6
6
|
CLEAN.include 'pkg'
|
7
|
+
|
8
|
+
task :test => :install
|
9
|
+
task :test do
|
10
|
+
sh <<SCRIPT
|
11
|
+
cd fixture
|
12
|
+
knife cookbook doc . -o README-generated.md -c knife.rb
|
13
|
+
diff -u README-expected.md README-generated.md && rm README-generated.md
|
14
|
+
SCRIPT
|
15
|
+
end
|
data/fixture/README-expected.md
CHANGED
@@ -6,6 +6,11 @@
|
|
6
6
|
|
7
7
|
# Requirements
|
8
8
|
|
9
|
+
|
10
|
+
## Chef Client:
|
11
|
+
|
12
|
+
*No Chef versions defined*
|
13
|
+
|
9
14
|
## Platform:
|
10
15
|
|
11
16
|
* cookbook-authors
|
@@ -45,6 +50,11 @@ This resource is awesome.
|
|
45
50
|
- my_attribute: This is an attribute. Defaults to <code>"a default value"</code>.
|
46
51
|
- my_property: This is a property. Defaults to <code>"another default value"</code>.
|
47
52
|
|
53
|
+
# Libraries
|
54
|
+
|
55
|
+
## stooges()
|
56
|
+
Returns `['Moe', 'Larry', 'Curly']`
|
57
|
+
|
48
58
|
# Credits
|
49
59
|
|
50
60
|
* Mathias Lafeldt
|
@@ -12,6 +12,17 @@
|
|
12
12
|
<%= fragments['requirements'] -%>
|
13
13
|
|
14
14
|
<% end -%>
|
15
|
+
|
16
|
+
## Chef Client:
|
17
|
+
|
18
|
+
<% unless chef_versions.empty? %>
|
19
|
+
<% chef_versions.each do |chef_version| %>
|
20
|
+
* <%= chef_version %>
|
21
|
+
<% end %>
|
22
|
+
<% else %>
|
23
|
+
*No Chef versions defined*
|
24
|
+
<% end %>
|
25
|
+
|
15
26
|
## Platform:
|
16
27
|
|
17
28
|
<% unless platforms.empty? %>
|
@@ -136,7 +147,7 @@
|
|
136
147
|
### Attribute Parameters
|
137
148
|
|
138
149
|
<% resource.attributes.each do |attribute| -%>
|
139
|
-
- <%= attribute %>: <%= resource.attribute_description(attribute) %><% if resource.attribute_has_default_value?(attribute) %> Defaults to <code><%= resource.attribute_default_value(attribute)
|
150
|
+
- <%= attribute %>: <%= resource.attribute_description(attribute) %><% if resource.attribute_has_default_value?(attribute) %> Defaults to <code><%= resource.attribute_default_value(attribute) %></code>.<% end %>
|
140
151
|
<% end -%>
|
141
152
|
<% end -%>
|
142
153
|
<% resource.top_level_descriptions.keys.select{|k| k != 'main'}.each do |key| -%>
|
@@ -146,6 +157,13 @@
|
|
146
157
|
<%= resource.top_level_description(key) -%>
|
147
158
|
<% end -%>
|
148
159
|
|
160
|
+
<% end -%>
|
161
|
+
<% end -%>
|
162
|
+
<% unless libraries.empty? -%>
|
163
|
+
# Libraries
|
164
|
+
<% libraries.each do |lib| -%>
|
165
|
+
|
166
|
+
<%= lib.descriptions %>
|
149
167
|
<% end -%>
|
150
168
|
<% end -%>
|
151
169
|
<% fragments.keys.select {|k|k != 'overview' && k != 'credit' && k != 'requirements'}.each do |key| -%>
|
@@ -9,6 +9,7 @@ module KnifeCookbookDoc
|
|
9
9
|
require 'knife_cookbook_doc/base_model'
|
10
10
|
require 'knife_cookbook_doc/documenting_lwrp_base'
|
11
11
|
require 'knife_cookbook_doc/definitions_model'
|
12
|
+
require 'knife_cookbook_doc/libraries_model'
|
12
13
|
require 'knife_cookbook_doc/readme_model'
|
13
14
|
require 'knife_cookbook_doc/recipe_model'
|
14
15
|
require 'knife_cookbook_doc/resource_model'
|
@@ -6,6 +6,7 @@ require 'rake/tasklib'
|
|
6
6
|
require 'knife_cookbook_doc/base_model'
|
7
7
|
require 'knife_cookbook_doc/documenting_lwrp_base'
|
8
8
|
require 'knife_cookbook_doc/definitions_model'
|
9
|
+
require 'knife_cookbook_doc/libraries_model'
|
9
10
|
require 'knife_cookbook_doc/readme_model'
|
10
11
|
require 'knife_cookbook_doc/recipe_model'
|
11
12
|
require 'knife_cookbook_doc/resource_model'
|
@@ -1,13 +1,21 @@
|
|
1
|
+
begin
|
2
|
+
require 'berkshelf'
|
3
|
+
rescue LoadError
|
4
|
+
# won't be able to get :source_url for dependent cookbooks
|
5
|
+
end
|
6
|
+
|
1
7
|
module KnifeCookbookDoc
|
2
8
|
class ReadmeModel
|
3
9
|
DEFAULT_CONSTRAINT = ">= 0.0.0".freeze
|
4
10
|
|
11
|
+
attr_reader :libraries
|
12
|
+
|
5
13
|
def initialize(cookbook_dir, config)
|
6
14
|
|
7
15
|
@metadata = Chef::Cookbook::Metadata.new
|
8
16
|
@metadata.from_file("#{cookbook_dir}/metadata.rb")
|
9
17
|
|
10
|
-
if !@metadata.attributes.empty?
|
18
|
+
if (!@metadata.attributes.empty? rescue false)
|
11
19
|
@attributes = @metadata.attributes.map do |attr, options|
|
12
20
|
name = "node['#{attr.gsub("/", "']['")}']"
|
13
21
|
[name, options['description'], options['default'], options['choice']]
|
@@ -22,6 +30,10 @@ module KnifeCookbookDoc
|
|
22
30
|
end
|
23
31
|
end
|
24
32
|
|
33
|
+
@libraries = Dir["#{cookbook_dir}/libraries/*.rb"].sort.map do |path|
|
34
|
+
LibrariesModel.new(@metadata.name, path)
|
35
|
+
end
|
36
|
+
|
25
37
|
@resources = []
|
26
38
|
Dir["#{cookbook_dir}/resources/*.rb"].sort.each do |resource_filename|
|
27
39
|
@resources << ResourceModel.new(@metadata.name, resource_filename)
|
@@ -96,6 +108,16 @@ module KnifeCookbookDoc
|
|
96
108
|
end
|
97
109
|
end
|
98
110
|
|
111
|
+
def chef_versions
|
112
|
+
if @metadata.methods.include?(:chef_version)
|
113
|
+
@metadata.chef_versions.map do |chef_version, version|
|
114
|
+
format_constraint(chef_version, version)
|
115
|
+
end
|
116
|
+
else
|
117
|
+
[]
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
99
121
|
def dependencies
|
100
122
|
@metadata.dependencies.map do |cookbook, version|
|
101
123
|
format_constraint(cookbook, version)
|
@@ -162,7 +184,28 @@ module KnifeCookbookDoc
|
|
162
184
|
|
163
185
|
private
|
164
186
|
|
187
|
+
def source_url_from_berkshelf(name)
|
188
|
+
@source_url ||= begin
|
189
|
+
if File.exist?('Berksfile') && defined?(::Berkshelf)
|
190
|
+
::Berkshelf::Berksfile
|
191
|
+
.from_file('Berksfile')
|
192
|
+
.install
|
193
|
+
.map { |cb| [cb.cookbook_name, cb.metadata.source_url] }
|
194
|
+
.to_h
|
195
|
+
else
|
196
|
+
{}
|
197
|
+
end
|
198
|
+
end
|
199
|
+
@source_url[name]
|
200
|
+
end
|
201
|
+
|
165
202
|
def format_constraint(name, version)
|
203
|
+
url = source_url_from_berkshelf(name)
|
204
|
+
if !url.nil? && url.start_with?('http')
|
205
|
+
# git:// and ssh:// URLs are not browsable
|
206
|
+
name = "[#{name}](#{url})"
|
207
|
+
end
|
208
|
+
|
166
209
|
if @constraints && version != DEFAULT_CONSTRAINT
|
167
210
|
"#{name} (#{version})"
|
168
211
|
else
|
@@ -52,14 +52,18 @@ module KnifeCookbookDoc
|
|
52
52
|
|
53
53
|
def attribute_has_default_value?(attribute)
|
54
54
|
specification = @native_resource.attribute_specifications[attribute]
|
55
|
-
specification && specification.
|
55
|
+
specification && specification.key?(:default)
|
56
56
|
end
|
57
57
|
|
58
58
|
def attribute_default_value(attribute)
|
59
|
-
if attribute_has_default_value?(attribute)
|
60
|
-
|
59
|
+
default = if attribute_has_default_value?(attribute)
|
60
|
+
@native_resource.attribute_specifications[attribute][:default]
|
61
|
+
end
|
62
|
+
|
63
|
+
if default.is_a?(Chef::DelayedEvaluator)
|
64
|
+
'lazy { ... }'
|
61
65
|
else
|
62
|
-
|
66
|
+
default.inspect
|
63
67
|
end
|
64
68
|
end
|
65
69
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-cookbook-doc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.29.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mathias Lafeldt
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-06-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef
|
@@ -76,6 +76,7 @@ extensions: []
|
|
76
76
|
extra_rdoc_files: []
|
77
77
|
files:
|
78
78
|
- ".gitattributes"
|
79
|
+
- ".github/ISSUE_TEMPLATE.md"
|
79
80
|
- ".gitignore"
|
80
81
|
- ".travis.yml"
|
81
82
|
- CHANGELOG.md
|
@@ -93,6 +94,7 @@ files:
|
|
93
94
|
- fixture/doc/overview.md
|
94
95
|
- fixture/gemfile
|
95
96
|
- fixture/knife.rb
|
97
|
+
- fixture/libraries/default.rb
|
96
98
|
- fixture/metadata.rb
|
97
99
|
- fixture/recipes/default.rb
|
98
100
|
- fixture/resources/default.rb
|
@@ -103,6 +105,7 @@ files:
|
|
103
105
|
- lib/knife_cookbook_doc/base_model.rb
|
104
106
|
- lib/knife_cookbook_doc/definitions_model.rb
|
105
107
|
- lib/knife_cookbook_doc/documenting_lwrp_base.rb
|
108
|
+
- lib/knife_cookbook_doc/libraries_model.rb
|
106
109
|
- lib/knife_cookbook_doc/rake_task.rb
|
107
110
|
- lib/knife_cookbook_doc/readme_model.rb
|
108
111
|
- lib/knife_cookbook_doc/recipe_model.rb
|