puppet-lint-absolute_template_path 1.0.0 → 2.0.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 +5 -5
- data/README.md +11 -0
- data/lib/puppet-lint/plugins/absolute_template_path.rb +18 -18
- data/spec/puppet-lint/plugins/absolute_template_path_spec.rb +44 -12
- data/spec/spec_helper.rb +5 -0
- metadata +105 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 02a0cdec7239448a8e68128530bfe37d0e08015e2918d2b4c6727cccb030fa7b
|
4
|
+
data.tar.gz: 7fdea9bcf4663a099fdf96e396197d987650e52b186aa08f4acfe6aa2719b8a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9acf95528a3d812914e8ee0cd083a2d8d65159e289286612701e4837813dbff0662a3decb71ef3e597972d9f6e3b30e9dd7971e255e8035212d20f7e61e4d1bc
|
7
|
+
data.tar.gz: 7993374239e66964b7c613839e6c0442267f6f84d1d54251363b9af85fc1c4ebcfa4ada566fc603b0065386b7d75805b5912dfcb01f1217732298490494dbebf
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# puppet-lint absolute template path check
|
2
2
|
|
3
|
+
[](https://github.com/deanwilson/puppet-lint-absolute_template_path-check/actions)
|
4
|
+
|
3
5
|
A new check for puppet-lint that checks template paths are in the
|
4
6
|
relative `template('example/template.erb')` form rather than the absolute
|
5
7
|
`template('/etc/puppet/modules/example/templates/template.erb')` format.
|
@@ -21,3 +23,12 @@ This plugin provides a new check to `puppet-lint`.
|
|
21
23
|
```
|
22
24
|
WARNING: template module paths should be relative, not absolute on line 5
|
23
25
|
```
|
26
|
+
|
27
|
+
## Other puppet-lint plugins
|
28
|
+
|
29
|
+
You can find a list of my `puppet-lint` plugins in the
|
30
|
+
[unixdaemon puppet-lint-plugins](https://github.com/deanwilson/unixdaemon-puppet-lint-plugins) repo.
|
31
|
+
|
32
|
+
### Author
|
33
|
+
|
34
|
+
[Dean Wilson](http://www.unixdaemon.net)
|
@@ -1,28 +1,28 @@
|
|
1
1
|
PuppetLint.new_check(:absolute_template_path) do
|
2
2
|
def check
|
3
3
|
resource_indexes.each do |resource|
|
4
|
-
|
5
|
-
resource[:param_tokens].select { |param_token|
|
6
|
-
param_token.value == 'content'
|
7
|
-
}.each do |content_token|
|
4
|
+
next unless resource[:type].value == 'file'
|
8
5
|
|
9
|
-
|
6
|
+
content_tokens = resource[:param_tokens].select { |pt| pt.value == 'content' }
|
10
7
|
|
11
|
-
|
12
|
-
|
8
|
+
content_tokens.each do |content_token|
|
9
|
+
value_token = content_token.next_code_token.next_code_token
|
13
10
|
|
14
|
-
|
11
|
+
next unless value_token.value.start_with? 'template'
|
15
12
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
13
|
+
template_path = value_token.next_code_token.next_code_token.value
|
14
|
+
|
15
|
+
next unless template_path.start_with? '/' # skip relative paths
|
16
|
+
|
17
|
+
# if we made it here it's a file resource with a template parameter
|
18
|
+
# that begins with an absolute path, so raise a lint issue for it.
|
19
|
+
notify :warning, {
|
20
|
+
message: 'template module paths should be relative, not absolute',
|
21
|
+
line: value_token.line,
|
22
|
+
column: value_token.column,
|
23
|
+
param_token: content_token,
|
24
|
+
value_token: value_token,
|
25
|
+
}
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -1,45 +1,77 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'absolute_template_path' do
|
4
|
-
|
5
4
|
let(:msg) { 'template module paths should be relative, not absolute' }
|
6
5
|
|
6
|
+
context 'when the manifest has no file resources' do
|
7
|
+
let(:code) do
|
8
|
+
<<-TEST_CLASS
|
9
|
+
class no_file_resource {
|
10
|
+
host { 'syslog':
|
11
|
+
ip => '10.10.10.10',
|
12
|
+
}
|
13
|
+
}
|
14
|
+
TEST_CLASS
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'does not detect any problems' do
|
18
|
+
expect(problems).to have(0).problems
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'with file resource but no template call' do
|
23
|
+
context 'when the template has a relative module path' do
|
24
|
+
let(:code) do
|
25
|
+
<<-TEST_CLASS
|
26
|
+
class template_tester {
|
27
|
+
file { '/tmp/template':
|
28
|
+
content => 'A static string',
|
29
|
+
}
|
30
|
+
}
|
31
|
+
TEST_CLASS
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'detects no problems' do
|
35
|
+
expect(problems).to have(0).problems
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
7
40
|
context 'with fix disabled' do
|
8
|
-
context 'template
|
41
|
+
context 'when the template has a relative module path' do
|
9
42
|
let(:code) do
|
10
|
-
<<-
|
43
|
+
<<-TEST_CLASS
|
11
44
|
class template_tester {
|
12
45
|
file { '/tmp/template':
|
13
46
|
content => template('example/template.erb'),
|
14
47
|
}
|
15
48
|
}
|
16
|
-
|
49
|
+
TEST_CLASS
|
17
50
|
end
|
18
51
|
|
19
|
-
it '
|
52
|
+
it 'detects no problems' do
|
20
53
|
expect(problems).to have(0).problems
|
21
54
|
end
|
22
55
|
end
|
23
56
|
|
24
|
-
context 'template
|
57
|
+
context 'when the template has an absolute module path' do
|
25
58
|
let(:code) do
|
26
|
-
<<-
|
59
|
+
<<-TEST_CLASS
|
27
60
|
class template_tester {
|
28
61
|
file { '/tmp/template':
|
29
62
|
content => template('/etc/puppet/modules/example/template.erb'),
|
30
63
|
}
|
31
64
|
}
|
32
|
-
|
65
|
+
TEST_CLASS
|
33
66
|
end
|
34
67
|
|
35
|
-
it '
|
68
|
+
it 'detects a single problem' do
|
36
69
|
expect(problems).to have(1).problem
|
37
70
|
end
|
38
71
|
|
39
|
-
it '
|
40
|
-
|
72
|
+
it 'creates a warning' do
|
73
|
+
expect(problems).to contain_warning(msg).on_line(3).in_column(26)
|
41
74
|
end
|
42
75
|
end
|
43
76
|
end
|
44
|
-
|
45
77
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,98 +1,176 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-lint-absolute_template_path
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dean Wilson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puppet-lint
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.1'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '5.0'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '1.1'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '5.0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rake
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 13.0.0
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 13.0.0
|
27
47
|
- !ruby/object:Gem::Dependency
|
28
48
|
name: rspec
|
29
49
|
requirement: !ruby/object:Gem::Requirement
|
30
50
|
requirements:
|
31
|
-
- - ~>
|
51
|
+
- - "~>"
|
32
52
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
53
|
+
version: 3.12.0
|
34
54
|
type: :development
|
35
55
|
prerelease: false
|
36
56
|
version_requirements: !ruby/object:Gem::Requirement
|
37
57
|
requirements:
|
38
|
-
- - ~>
|
58
|
+
- - "~>"
|
39
59
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
60
|
+
version: 3.12.0
|
41
61
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: rspec-
|
62
|
+
name: rspec-collection_matchers
|
43
63
|
requirement: !ruby/object:Gem::Requirement
|
44
64
|
requirements:
|
45
|
-
- - ~>
|
65
|
+
- - "~>"
|
46
66
|
- !ruby/object:Gem::Version
|
47
67
|
version: '1.0'
|
48
68
|
type: :development
|
49
69
|
prerelease: false
|
50
70
|
version_requirements: !ruby/object:Gem::Requirement
|
51
71
|
requirements:
|
52
|
-
- - ~>
|
72
|
+
- - "~>"
|
53
73
|
- !ruby/object:Gem::Version
|
54
74
|
version: '1.0'
|
55
75
|
- !ruby/object:Gem::Dependency
|
56
|
-
name: rspec-
|
76
|
+
name: rspec-its
|
57
77
|
requirement: !ruby/object:Gem::Requirement
|
58
78
|
requirements:
|
59
|
-
- - ~>
|
79
|
+
- - "~>"
|
60
80
|
- !ruby/object:Gem::Version
|
61
81
|
version: '1.0'
|
62
82
|
type: :development
|
63
83
|
prerelease: false
|
64
84
|
version_requirements: !ruby/object:Gem::Requirement
|
65
85
|
requirements:
|
66
|
-
- - ~>
|
86
|
+
- - "~>"
|
67
87
|
- !ruby/object:Gem::Version
|
68
88
|
version: '1.0'
|
69
89
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
90
|
+
name: rspec-json_expectations
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '2.2'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '2.2'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: rubocop
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.52.0
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 1.52.0
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: rubocop-rake
|
71
119
|
requirement: !ruby/object:Gem::Requirement
|
72
120
|
requirements:
|
73
|
-
- -
|
121
|
+
- - ">="
|
74
122
|
- !ruby/object:Gem::Version
|
75
123
|
version: '0'
|
76
124
|
type: :development
|
77
125
|
prerelease: false
|
78
126
|
version_requirements: !ruby/object:Gem::Requirement
|
79
127
|
requirements:
|
80
|
-
- -
|
128
|
+
- - ">="
|
81
129
|
- !ruby/object:Gem::Version
|
82
130
|
version: '0'
|
83
|
-
|
84
|
-
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: rubocop-rspec
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: 2.22.0
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 2.22.0
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: simplecov
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - "~>"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: 0.22.0
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - "~>"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: 0.22.0
|
159
|
+
description: |2
|
160
|
+
A new check for puppet-lint that checks all template paths are in the
|
161
|
+
template('example/template.erb') form rather than
|
162
|
+
template('/etc/puppet/modules/example/templates/template.erb')
|
85
163
|
email: dean.wilson@gmail.com
|
86
164
|
executables: []
|
87
165
|
extensions: []
|
88
166
|
extra_rdoc_files: []
|
89
167
|
files:
|
90
|
-
- README.md
|
91
168
|
- LICENSE
|
169
|
+
- README.md
|
92
170
|
- lib/puppet-lint/plugins/absolute_template_path.rb
|
93
|
-
- spec/spec_helper.rb
|
94
171
|
- spec/puppet-lint/plugins/absolute_template_path_spec.rb
|
95
|
-
|
172
|
+
- spec/spec_helper.rb
|
173
|
+
homepage: https://github.com/deanwilson/puppet-lint-absolute_template_path-check
|
96
174
|
licenses:
|
97
175
|
- MIT
|
98
176
|
metadata: {}
|
@@ -102,20 +180,19 @@ require_paths:
|
|
102
180
|
- lib
|
103
181
|
required_ruby_version: !ruby/object:Gem::Requirement
|
104
182
|
requirements:
|
105
|
-
- -
|
183
|
+
- - ">="
|
106
184
|
- !ruby/object:Gem::Version
|
107
|
-
version:
|
185
|
+
version: 2.7.0
|
108
186
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
187
|
requirements:
|
110
|
-
- -
|
188
|
+
- - ">="
|
111
189
|
- !ruby/object:Gem::Version
|
112
190
|
version: '0'
|
113
191
|
requirements: []
|
114
|
-
|
115
|
-
rubygems_version: 2.1.11
|
192
|
+
rubygems_version: 3.1.6
|
116
193
|
signing_key:
|
117
194
|
specification_version: 4
|
118
195
|
summary: puppet-lint absolute template path check
|
119
196
|
test_files:
|
120
|
-
- spec/spec_helper.rb
|
121
197
|
- spec/puppet-lint/plugins/absolute_template_path_spec.rb
|
198
|
+
- spec/spec_helper.rb
|