puppet-lint 2.5.2 → 3.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 +4 -4
- data/.rubocop.yml +522 -0
- data/lib/puppet-lint/bin.rb +71 -6
- data/lib/puppet-lint/checkplugin.rb +43 -9
- data/lib/puppet-lint/checks.rb +16 -16
- data/lib/puppet-lint/configuration.rb +134 -134
- data/lib/puppet-lint/data.rb +28 -28
- data/lib/puppet-lint/lexer/string_slurper.rb +138 -140
- data/lib/puppet-lint/lexer/token.rb +188 -190
- data/lib/puppet-lint/lexer.rb +416 -417
- data/lib/puppet-lint/monkeypatches.rb +1 -1
- data/lib/puppet-lint/optparser.rb +5 -1
- data/lib/puppet-lint/plugins/check_classes/arrow_on_right_operand_line.rb +6 -4
- data/lib/puppet-lint/plugins/check_classes/autoloader_layout.rb +5 -3
- data/lib/puppet-lint/plugins/check_classes/class_inherits_from_params_class.rb +6 -4
- data/lib/puppet-lint/plugins/check_classes/code_on_top_scope.rb +5 -3
- data/lib/puppet-lint/plugins/check_classes/inherits_across_namespaces.rb +5 -3
- data/lib/puppet-lint/plugins/check_classes/names_containing_dash.rb +5 -3
- data/lib/puppet-lint/plugins/check_classes/names_containing_uppercase.rb +7 -5
- data/lib/puppet-lint/plugins/check_classes/nested_classes_or_defines.rb +5 -3
- data/lib/puppet-lint/plugins/check_classes/parameter_order.rb +7 -4
- data/lib/puppet-lint/plugins/check_classes/right_to_left_relationship.rb +5 -3
- data/lib/puppet-lint/plugins/check_classes/variable_scope.rb +15 -13
- data/lib/puppet-lint/plugins/check_comments/slash_comments.rb +9 -7
- data/lib/puppet-lint/plugins/check_comments/star_comments.rb +10 -8
- data/lib/puppet-lint/plugins/check_conditionals/case_without_default.rb +6 -4
- data/lib/puppet-lint/plugins/check_conditionals/selector_inside_resource.rb +5 -3
- data/lib/puppet-lint/plugins/check_documentation/documentation.rb +7 -3
- data/lib/puppet-lint/plugins/check_nodes/unquoted_node_name.rb +15 -11
- data/lib/puppet-lint/plugins/check_resources/duplicate_params.rb +5 -3
- data/lib/puppet-lint/plugins/check_resources/ensure_first_param.rb +8 -5
- data/lib/puppet-lint/plugins/check_resources/ensure_not_symlink_target.rb +11 -8
- data/lib/puppet-lint/plugins/check_resources/file_mode.rb +14 -9
- data/lib/puppet-lint/plugins/check_resources/unquoted_file_mode.rb +11 -6
- data/lib/puppet-lint/plugins/check_resources/unquoted_resource_title.rb +6 -4
- data/lib/puppet-lint/plugins/check_strings/double_quoted_strings.rb +12 -7
- data/lib/puppet-lint/plugins/check_strings/only_variable_string.rb +8 -6
- data/lib/puppet-lint/plugins/check_strings/puppet_url_without_modules.rb +14 -8
- data/lib/puppet-lint/plugins/check_strings/quoted_booleans.rb +11 -7
- data/lib/puppet-lint/plugins/check_strings/single_quote_string_with_variables.rb +11 -6
- data/lib/puppet-lint/plugins/check_strings/variables_not_enclosed.rb +12 -8
- data/lib/puppet-lint/plugins/check_variables/variable_contains_dash.rb +11 -7
- data/lib/puppet-lint/plugins/check_variables/variable_is_lowercase.rb +11 -7
- data/lib/puppet-lint/plugins/check_whitespace/140chars.rb +3 -8
- data/lib/puppet-lint/plugins/check_whitespace/2sp_soft_tabs.rb +10 -8
- data/lib/puppet-lint/plugins/check_whitespace/80chars.rb +3 -8
- data/lib/puppet-lint/plugins/check_whitespace/arrow_alignment.rb +10 -8
- data/lib/puppet-lint/plugins/check_whitespace/hard_tabs.rb +11 -7
- data/lib/puppet-lint/plugins/check_whitespace/line_length.rb +29 -0
- data/lib/puppet-lint/plugins/check_whitespace/trailing_whitespace.rb +13 -7
- data/lib/puppet-lint/plugins.rb +63 -61
- data/lib/puppet-lint/report/github.rb +17 -0
- data/lib/puppet-lint/report/sarif_template.json +63 -0
- data/lib/puppet-lint/tasks/puppet-lint.rb +84 -83
- data/lib/puppet-lint/tasks/release_test.rb +4 -1
- data/lib/puppet-lint/version.rb +1 -1
- data/lib/puppet-lint.rb +27 -12
- data/spec/acceptance/puppet_lint_spec.rb +46 -0
- data/spec/spec_helper.rb +92 -91
- data/spec/spec_helper_acceptance.rb +6 -0
- data/spec/spec_helper_acceptance_local.rb +38 -0
- data/spec/{puppet-lint → unit/puppet-lint}/bin_spec.rb +79 -35
- data/spec/{puppet-lint → unit/puppet-lint}/checks_spec.rb +36 -36
- data/spec/unit/puppet-lint/configuration_spec.rb +88 -0
- data/spec/{puppet-lint → unit/puppet-lint}/data_spec.rb +6 -3
- data/spec/{puppet-lint → unit/puppet-lint}/ignore_overrides_spec.rb +17 -17
- data/spec/{puppet-lint → unit/puppet-lint}/lexer/string_slurper_spec.rb +128 -128
- data/spec/{puppet-lint → unit/puppet-lint}/lexer/token_spec.rb +1 -1
- data/spec/{puppet-lint → unit/puppet-lint}/lexer_spec.rb +653 -671
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_classes/arrow_on_right_operand_line_spec.rb +16 -16
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_classes/autoloader_layout_spec.rb +13 -13
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_classes/class_inherits_from_params_class_spec.rb +3 -3
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_classes/code_on_top_scope_spec.rb +4 -4
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_classes/inherits_across_namespaces_spec.rb +4 -4
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_classes/name_contains_uppercase_spec.rb +10 -10
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_classes/names_containing_dash_spec.rb +7 -7
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_classes/nested_classes_or_defines_spec.rb +7 -7
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_classes/parameter_order_spec.rb +9 -9
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_classes/right_to_left_relationship_spec.rb +3 -3
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_classes/variable_scope_spec.rb +25 -25
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_comments/slash_comments_spec.rb +7 -7
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_comments/star_comments_spec.rb +13 -13
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_conditionals/case_without_default_spec.rb +10 -10
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_conditionals/selector_inside_resource_spec.rb +3 -3
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_documentation/documentation_spec.rb +8 -8
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_nodes/unquoted_node_name_spec.rb +24 -24
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_resources/duplicate_params_spec.rb +9 -9
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_resources/ensure_first_param_spec.rb +19 -19
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_resources/ensure_not_symlink_target_spec.rb +10 -10
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_resources/file_mode_spec.rb +40 -40
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_resources/unquoted_file_mode_spec.rb +20 -20
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_resources/unquoted_resource_title_spec.rb +24 -24
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_strings/double_quoted_strings_spec.rb +27 -27
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_strings/only_variable_string_spec.rb +18 -18
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_strings/puppet_url_without_modules_spec.rb +9 -9
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_strings/quoted_booleans_spec.rb +22 -22
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_strings/single_quote_string_with_variables_spec.rb +2 -2
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_strings/variables_not_enclosed_spec.rb +21 -21
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_variables/variable_contains_dash_spec.rb +6 -6
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_variables/variable_is_lowercase_spec.rb +7 -7
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_whitespace/140chars_spec.rb +5 -5
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_whitespace/2sp_soft_tabs_spec.rb +2 -2
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_whitespace/80chars_spec.rb +6 -6
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_whitespace/arrow_alignment_spec.rb +127 -127
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_whitespace/hard_tabs_spec.rb +7 -7
- data/spec/{puppet-lint → unit/puppet-lint}/plugins/check_whitespace/trailing_whitespace_spec.rb +15 -15
- data/spec/unit/puppet-lint/puppet-lint_spec.rb +18 -0
- metadata +63 -119
- data/CHANGELOG.md +0 -33
- data/HISTORY.md +0 -1130
- data/spec/puppet-lint/configuration_spec.rb +0 -66
- data/spec/puppet-lint_spec.rb +0 -16
@@ -41,7 +41,7 @@ class PuppetLint::CheckPlugin
|
|
41
41
|
begin
|
42
42
|
fix(problem)
|
43
43
|
problem[:kind] = :fixed
|
44
|
-
rescue PuppetLint::NoFix
|
44
|
+
rescue PuppetLint::NoFix
|
45
45
|
# noop
|
46
46
|
end
|
47
47
|
end
|
@@ -105,6 +105,38 @@ class PuppetLint::CheckPlugin
|
|
105
105
|
PuppetLint::Data.node_indexes
|
106
106
|
end
|
107
107
|
|
108
|
+
# Public: Provides positional information for any array definitions in the
|
109
|
+
# tokens array to the check plugins.
|
110
|
+
#
|
111
|
+
# Returns an array of hashes containing the position information.
|
112
|
+
def array_indexes
|
113
|
+
PuppetLint::Data.array_indexes
|
114
|
+
end
|
115
|
+
|
116
|
+
# Public: Provides positional information for any hash definitions in the
|
117
|
+
# tokens array to the check plugins.
|
118
|
+
#
|
119
|
+
# Returns an array of hashes containing the position information.
|
120
|
+
def hash_indexes
|
121
|
+
PuppetLint::Data.hash_indexes
|
122
|
+
end
|
123
|
+
|
124
|
+
# Public: Provides positional information for any default definitions in the
|
125
|
+
# tokens array to the check plugins.
|
126
|
+
#
|
127
|
+
# Returns an Array of Hashes containing the position information.
|
128
|
+
def defaults_indexes
|
129
|
+
PuppetLint::Data.defaults_indexes
|
130
|
+
end
|
131
|
+
|
132
|
+
# Public: Provides positional information for any function definition in the
|
133
|
+
# tokens array to the check plugins.
|
134
|
+
#
|
135
|
+
# Returns an Array of Hashes containing the position information.
|
136
|
+
def function_indexes
|
137
|
+
PuppetLint::Data.function_indexes
|
138
|
+
end
|
139
|
+
|
108
140
|
# Public: Provides the expanded path of the file being analysed to check
|
109
141
|
# plugins.
|
110
142
|
#
|
@@ -147,10 +179,10 @@ class PuppetLint::CheckPlugin
|
|
147
179
|
# Returns a Hash of default problem information.
|
148
180
|
def default_info
|
149
181
|
@default_info ||= {
|
150
|
-
:
|
151
|
-
:
|
152
|
-
:
|
153
|
-
:
|
182
|
+
check: self.class.const_get('NAME'),
|
183
|
+
fullpath: fullpath,
|
184
|
+
path: path,
|
185
|
+
filename: filename,
|
154
186
|
}
|
155
187
|
end
|
156
188
|
|
@@ -158,10 +190,12 @@ class PuppetLint::CheckPlugin
|
|
158
190
|
#
|
159
191
|
# kind - The Symbol problem type (:warning or :error).
|
160
192
|
# problem - A Hash containing the attributes of the problem
|
161
|
-
# :message
|
162
|
-
# :line
|
163
|
-
# :column
|
164
|
-
# :check
|
193
|
+
# :message - The String message describing the problem.
|
194
|
+
# :line - The Integer line number of the location of the problem.
|
195
|
+
# :column - The Integer column number of the location of the problem.
|
196
|
+
# :check - The Symbol name of the check that detected the problem.
|
197
|
+
# :description - The description of the check that detected the problem.
|
198
|
+
# :help_uri - The help web page of the check that detected the problem.
|
165
199
|
#
|
166
200
|
# Returns nothing.
|
167
201
|
def notify(kind, problem)
|
data/lib/puppet-lint/checks.rb
CHANGED
@@ -32,14 +32,14 @@ class PuppetLint::Checks
|
|
32
32
|
end
|
33
33
|
|
34
34
|
problems << {
|
35
|
-
:
|
36
|
-
:
|
37
|
-
:
|
38
|
-
:
|
39
|
-
:
|
40
|
-
:
|
41
|
-
:
|
42
|
-
:
|
35
|
+
kind: :error,
|
36
|
+
check: :syntax,
|
37
|
+
message: message,
|
38
|
+
line: e.line_no,
|
39
|
+
column: e.column,
|
40
|
+
fullpath: PuppetLint::Data.fullpath,
|
41
|
+
path: PuppetLint::Data.path,
|
42
|
+
filename: PuppetLint::Data.filename,
|
43
43
|
}
|
44
44
|
PuppetLint::Data.tokens = []
|
45
45
|
end
|
@@ -73,14 +73,14 @@ class PuppetLint::Checks
|
|
73
73
|
@problems
|
74
74
|
rescue PuppetLint::SyntaxError => e
|
75
75
|
@problems << {
|
76
|
-
:
|
77
|
-
:
|
78
|
-
:
|
79
|
-
:
|
80
|
-
:
|
81
|
-
:
|
82
|
-
:
|
83
|
-
:
|
76
|
+
kind: :error,
|
77
|
+
check: :syntax,
|
78
|
+
message: 'Syntax error',
|
79
|
+
fullpath: File.expand_path(fileinfo, ENV['PWD']),
|
80
|
+
filename: File.basename(fileinfo),
|
81
|
+
path: fileinfo,
|
82
|
+
line: e.token.line,
|
83
|
+
column: e.token.column,
|
84
84
|
}
|
85
85
|
|
86
86
|
@problems
|
@@ -1,157 +1,157 @@
|
|
1
|
-
class
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
settings["#{check}_disabled"] == true ? false : true
|
23
|
-
end
|
24
|
-
|
25
|
-
# Public: Disable the named check.
|
26
|
-
#
|
27
|
-
# Returns nothing.
|
28
|
-
define_method("disable_#{check}") do
|
29
|
-
settings["#{check}_disabled"] = true
|
30
|
-
end
|
31
|
-
|
32
|
-
# Public: Enable the named check.
|
33
|
-
#
|
34
|
-
# Returns nothing.
|
35
|
-
define_method("enable_#{check}") do
|
36
|
-
settings["#{check}_disabled"] = false
|
37
|
-
end
|
1
|
+
# Public: A singleton class to store the running configuration of
|
2
|
+
# puppet-lint.
|
3
|
+
class PuppetLint::Configuration
|
4
|
+
# Internal: Add helper methods for a new check to the
|
5
|
+
# PuppetLint::Configuration object.
|
6
|
+
#
|
7
|
+
# check - The String name of the check.
|
8
|
+
#
|
9
|
+
# Returns nothing.
|
10
|
+
#
|
11
|
+
# Signature
|
12
|
+
#
|
13
|
+
# <check>_enabled?
|
14
|
+
# disable_<check>
|
15
|
+
# enable_<check>
|
16
|
+
def self.add_check(check)
|
17
|
+
# Public: Determine if the named check is enabled.
|
18
|
+
#
|
19
|
+
# Returns true if the check is enabled, otherwise return false.
|
20
|
+
define_method("#{check}_enabled?") do
|
21
|
+
settings["#{check}_disabled"] == true ? false : true
|
38
22
|
end
|
39
23
|
|
40
|
-
# Public:
|
41
|
-
# and create the necessary methods to get & set the option in the future.
|
42
|
-
#
|
43
|
-
# args - An Array of values to set the option to.
|
44
|
-
# method - The String name of the option.
|
45
|
-
# block - Unused.
|
24
|
+
# Public: Disable the named check.
|
46
25
|
#
|
47
26
|
# Returns nothing.
|
48
|
-
#
|
49
|
-
|
50
|
-
#
|
51
|
-
# <option>=(value)
|
52
|
-
def method_missing(method, *args, &_block)
|
53
|
-
super unless method.to_s =~ %r{^(\w+)=?$}
|
54
|
-
|
55
|
-
option = Regexp.last_match(1)
|
56
|
-
add_option(option.to_s) if settings[option].nil?
|
57
|
-
settings[option] = args[0] unless args.empty?
|
27
|
+
define_method("disable_#{check}") do
|
28
|
+
settings["#{check}_disabled"] = true
|
58
29
|
end
|
59
30
|
|
60
|
-
|
61
|
-
method.to_s =~ %r{^\w+=?$} || super
|
62
|
-
end
|
63
|
-
|
64
|
-
# Internal: Add options to the PuppetLint::Configuration object from inside
|
65
|
-
# the class.
|
66
|
-
#
|
67
|
-
# option - The String name of the option.
|
31
|
+
# Public: Enable the named check.
|
68
32
|
#
|
69
33
|
# Returns nothing.
|
70
|
-
#
|
71
|
-
|
72
|
-
#
|
73
|
-
# <option>
|
74
|
-
# <option>=(value)
|
75
|
-
def add_option(option)
|
76
|
-
self.class.add_option(option)
|
34
|
+
define_method("enable_#{check}") do
|
35
|
+
settings["#{check}_disabled"] = false
|
77
36
|
end
|
37
|
+
end
|
78
38
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
# value - The value to set the option to.
|
94
|
-
#
|
95
|
-
# Returns nothing.
|
96
|
-
define_method("#{option}=") do |value|
|
97
|
-
settings[option] = value
|
98
|
-
end
|
39
|
+
# Public: Catch situations where options are being set for the first time
|
40
|
+
# and create the necessary methods to get & set the option in the future.
|
41
|
+
#
|
42
|
+
# args - An Array of values to set the option to.
|
43
|
+
# method - The String name of the option.
|
44
|
+
# block - Unused.
|
45
|
+
#
|
46
|
+
# Returns nothing.
|
47
|
+
#
|
48
|
+
# Signature
|
49
|
+
#
|
50
|
+
# <option>=(value)
|
51
|
+
def method_missing(method, *args, &_block)
|
52
|
+
super unless method.to_s =~ %r{^(\w+)=?$}
|
99
53
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
settings[option]
|
105
|
-
end
|
106
|
-
end
|
54
|
+
option = Regexp.last_match(1)
|
55
|
+
add_option(option.to_s) if settings[option].nil?
|
56
|
+
settings[option] = args[0] unless args.empty?
|
57
|
+
end
|
107
58
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
59
|
+
def respond_to_missing?(method, *)
|
60
|
+
method.to_s =~ %r{^\w+=?$} || super
|
61
|
+
end
|
62
|
+
|
63
|
+
# Internal: Add options to the PuppetLint::Configuration object from inside
|
64
|
+
# the class.
|
65
|
+
#
|
66
|
+
# option - The String name of the option.
|
67
|
+
#
|
68
|
+
# Returns nothing.
|
69
|
+
#
|
70
|
+
# Signature
|
71
|
+
#
|
72
|
+
# <option>
|
73
|
+
# <option>=(value)
|
74
|
+
def add_option(option)
|
75
|
+
self.class.add_option(option)
|
76
|
+
end
|
77
|
+
|
78
|
+
# Public: Add an option to the PuppetLint::Configuration object from
|
79
|
+
# outside the class.
|
80
|
+
#
|
81
|
+
# option - The String name of the option.
|
82
|
+
#
|
83
|
+
# Returns nothing.
|
84
|
+
#
|
85
|
+
# Signature
|
86
|
+
#
|
87
|
+
# <option>
|
88
|
+
# <option>=(value)
|
89
|
+
def self.add_option(option)
|
90
|
+
# Public: Set the value of the named option.
|
91
|
+
#
|
92
|
+
# value - The value to set the option to.
|
112
93
|
#
|
113
94
|
# Returns nothing.
|
114
|
-
|
115
|
-
|
116
|
-
check_object[check] = klass
|
95
|
+
define_method("#{option}=") do |value|
|
96
|
+
settings[option] = value
|
117
97
|
end
|
118
98
|
|
119
|
-
#
|
99
|
+
# Public: Get the value of the named option.
|
120
100
|
#
|
121
|
-
# Returns
|
122
|
-
|
123
|
-
|
101
|
+
# Returns the value of the option.
|
102
|
+
define_method(option) do
|
103
|
+
settings[option]
|
124
104
|
end
|
105
|
+
end
|
125
106
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
107
|
+
# Internal: Register a new check.
|
108
|
+
#
|
109
|
+
# check - The String name of the check
|
110
|
+
# klass - The Class containing the check logic.
|
111
|
+
#
|
112
|
+
# Returns nothing.
|
113
|
+
def add_check(check, klass)
|
114
|
+
self.class.add_check(check)
|
115
|
+
check_object[check] = klass
|
116
|
+
end
|
132
117
|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
118
|
+
# Internal: Access the internal storage for settings.
|
119
|
+
#
|
120
|
+
# Returns a Hash containing all the settings.
|
121
|
+
def settings
|
122
|
+
@settings ||= {}
|
123
|
+
end
|
139
124
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
125
|
+
# Internal: Access the internal storage for check method blocks.
|
126
|
+
#
|
127
|
+
# Returns a Hash containing all the check blocks.
|
128
|
+
def check_object
|
129
|
+
@check_object ||= {}
|
130
|
+
end
|
131
|
+
|
132
|
+
# Public: Get a list of all the defined checks.
|
133
|
+
#
|
134
|
+
# Returns an Array of String check names.
|
135
|
+
def checks
|
136
|
+
check_object.keys
|
137
|
+
end
|
138
|
+
|
139
|
+
# Public: Clear the PuppetLint::Configuration storage and set some sane
|
140
|
+
# default values.
|
141
|
+
#
|
142
|
+
# Returns nothing.
|
143
|
+
def defaults
|
144
|
+
settings.clear
|
145
|
+
self.with_filename = false
|
146
|
+
self.fail_on_warnings = false
|
147
|
+
self.error_level = :all
|
148
|
+
self.log_format = ''
|
149
|
+
self.with_context = false
|
150
|
+
self.fix = false
|
151
|
+
self.json = false
|
152
|
+
self.sarif = false
|
153
|
+
self.show_ignored = false
|
154
|
+
self.ignore_paths = ['vendor/**/*.pp']
|
155
|
+
self.github_actions = ENV.key?('GITHUB_ACTION')
|
156
156
|
end
|
157
157
|
end
|
data/lib/puppet-lint/data.rb
CHANGED
@@ -143,7 +143,7 @@ class PuppetLint::Data
|
|
143
143
|
end
|
144
144
|
title_array_tokens = tokens[(array_start_idx + 1)..(token_idx - 2)]
|
145
145
|
result += title_array_tokens.select do |token|
|
146
|
-
{ :
|
146
|
+
{ STRING: true, NAME: true }.include?(token.type)
|
147
147
|
end
|
148
148
|
else
|
149
149
|
next_token = tokens[token_idx].next_code_token
|
@@ -180,11 +180,11 @@ class PuppetLint::Data
|
|
180
180
|
marker = rel_end_idx + start_idx
|
181
181
|
|
182
182
|
result << {
|
183
|
-
:
|
184
|
-
:
|
185
|
-
:
|
186
|
-
:
|
187
|
-
:
|
183
|
+
start: start_idx + 1,
|
184
|
+
end: marker,
|
185
|
+
tokens: tokens[start_idx..marker],
|
186
|
+
type: find_resource_type_token(start_idx),
|
187
|
+
param_tokens: find_resource_param_tokens(tokens[start_idx..marker]),
|
188
188
|
}
|
189
189
|
end
|
190
190
|
result
|
@@ -310,13 +310,13 @@ class PuppetLint::Data
|
|
310
310
|
if brace_depth.zero? && !in_params
|
311
311
|
if token.next_code_token.type != :LBRACE
|
312
312
|
result << {
|
313
|
-
:
|
314
|
-
:
|
315
|
-
:
|
316
|
-
:
|
317
|
-
:
|
318
|
-
:
|
319
|
-
:
|
313
|
+
start: i,
|
314
|
+
end: i + j + 1,
|
315
|
+
tokens: tokens[i..(i + j + 1)],
|
316
|
+
param_tokens: param_tokens(tokens[i..(i + j + 1)]),
|
317
|
+
type: type,
|
318
|
+
name_token: token.next_code_token,
|
319
|
+
inherited_token: inherited_class,
|
320
320
|
}
|
321
321
|
break
|
322
322
|
end
|
@@ -367,9 +367,9 @@ class PuppetLint::Data
|
|
367
367
|
end
|
368
368
|
|
369
369
|
functions << {
|
370
|
-
:
|
371
|
-
:
|
372
|
-
:
|
370
|
+
start: token_idx,
|
371
|
+
end: real_idx,
|
372
|
+
tokens: tokens[token_idx..real_idx],
|
373
373
|
}
|
374
374
|
end
|
375
375
|
functions
|
@@ -403,9 +403,9 @@ class PuppetLint::Data
|
|
403
403
|
token.prev_code_token.type == :CLASSREF
|
404
404
|
|
405
405
|
arrays << {
|
406
|
-
:
|
407
|
-
:
|
408
|
-
:
|
406
|
+
start: token_idx,
|
407
|
+
end: real_idx,
|
408
|
+
tokens: tokens[token_idx..real_idx],
|
409
409
|
}
|
410
410
|
end
|
411
411
|
arrays
|
@@ -441,9 +441,9 @@ class PuppetLint::Data
|
|
441
441
|
end
|
442
442
|
|
443
443
|
hashes << {
|
444
|
-
:
|
445
|
-
:
|
446
|
-
:
|
444
|
+
start: token_idx,
|
445
|
+
end: real_idx,
|
446
|
+
tokens: tokens[token_idx..real_idx],
|
447
447
|
}
|
448
448
|
end
|
449
449
|
hashes
|
@@ -475,9 +475,9 @@ class PuppetLint::Data
|
|
475
475
|
end
|
476
476
|
|
477
477
|
defaults << {
|
478
|
-
:
|
479
|
-
:
|
480
|
-
:
|
478
|
+
start: token_idx,
|
479
|
+
end: real_idx,
|
480
|
+
tokens: tokens[token_idx..real_idx],
|
481
481
|
}
|
482
482
|
end
|
483
483
|
defaults
|
@@ -561,7 +561,7 @@ class PuppetLint::Data
|
|
561
561
|
|
562
562
|
comment_words = token.value.strip.split(%r{\s+})
|
563
563
|
comment_words.each_with_index do |word, i|
|
564
|
-
if
|
564
|
+
if %r{\Alint\:(ignore|endignore)}.match?(word)
|
565
565
|
comment_data << word
|
566
566
|
else
|
567
567
|
# Once we reach the first non-controlcomment word, assume the rest
|
@@ -591,7 +591,7 @@ class PuppetLint::Data
|
|
591
591
|
if top_override.nil?
|
592
592
|
# TODO: refactor to provide a way to expose problems from
|
593
593
|
# PuppetLint::Data via the normal problem reporting mechanism.
|
594
|
-
puts "WARNING: lint:endignore comment with no opening lint:ignore:<check> comment found on line #{token.line}"
|
594
|
+
$stderr.puts "WARNING: lint:endignore comment with no opening lint:ignore:<check> comment found on line #{token.line}"
|
595
595
|
else
|
596
596
|
top_override.each do |start|
|
597
597
|
next if start.nil?
|
@@ -607,7 +607,7 @@ class PuppetLint::Data
|
|
607
607
|
end
|
608
608
|
|
609
609
|
stack.each do |control|
|
610
|
-
puts "WARNING: lint:ignore:#{control[0][2]} comment on line #{control[0][0]} with no closing lint:endignore comment"
|
610
|
+
$stderr.puts "WARNING: lint:ignore:#{control[0][2]} comment on line #{control[0][0]} with no closing lint:endignore comment"
|
611
611
|
end
|
612
612
|
end
|
613
613
|
end
|