puppet-lint 2.3.0 → 2.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +74 -0
- data/.rubocop_todo.yml +89 -0
- data/.travis.yml +11 -9
- data/CHANGELOG.md +54 -0
- data/Gemfile +3 -0
- data/Rakefile +14 -3
- data/appveyor.yml +1 -4
- data/bin/puppet-lint +1 -1
- data/lib/puppet-lint.rb +25 -21
- data/lib/puppet-lint/bin.rb +15 -19
- data/lib/puppet-lint/checkplugin.rb +24 -17
- data/lib/puppet-lint/checks.rb +42 -31
- data/lib/puppet-lint/configuration.rb +11 -8
- data/lib/puppet-lint/data.rb +236 -164
- data/lib/puppet-lint/lexer.rb +225 -203
- data/lib/puppet-lint/lexer/token.rb +34 -18
- data/lib/puppet-lint/optparser.rb +33 -30
- data/lib/puppet-lint/plugins.rb +42 -38
- data/lib/puppet-lint/plugins/check_classes/arrow_on_right_operand_line.rb +26 -28
- data/lib/puppet-lint/plugins/check_classes/autoloader_layout.rb +21 -20
- data/lib/puppet-lint/plugins/check_classes/class_inherits_from_params_class.rb +8 -9
- data/lib/puppet-lint/plugins/check_classes/code_on_top_scope.rb +9 -8
- data/lib/puppet-lint/plugins/check_classes/inherits_across_namespaces.rb +12 -11
- data/lib/puppet-lint/plugins/check_classes/names_containing_dash.rb +13 -12
- data/lib/puppet-lint/plugins/check_classes/names_containing_uppercase.rb +14 -13
- data/lib/puppet-lint/plugins/check_classes/nested_classes_or_defines.rb +9 -10
- data/lib/puppet-lint/plugins/check_classes/parameter_order.rb +40 -31
- data/lib/puppet-lint/plugins/check_classes/right_to_left_relationship.rb +3 -2
- data/lib/puppet-lint/plugins/check_classes/variable_scope.rb +21 -24
- data/lib/puppet-lint/plugins/check_comments/slash_comments.rb +3 -2
- data/lib/puppet-lint/plugins/check_comments/star_comments.rb +6 -5
- data/lib/puppet-lint/plugins/check_conditionals/case_without_default.rb +21 -20
- data/lib/puppet-lint/plugins/check_conditionals/selector_inside_resource.rb +10 -13
- data/lib/puppet-lint/plugins/check_documentation/documentation.rb +26 -17
- data/lib/puppet-lint/plugins/check_nodes/unquoted_node_name.rb +11 -11
- data/lib/puppet-lint/plugins/check_resources/duplicate_params.rb +4 -3
- data/lib/puppet-lint/plugins/check_resources/ensure_first_param.rb +17 -18
- data/lib/puppet-lint/plugins/check_resources/ensure_not_symlink_target.rb +17 -16
- data/lib/puppet-lint/plugins/check_resources/file_mode.rb +22 -23
- data/lib/puppet-lint/plugins/check_resources/unquoted_file_mode.rb +14 -13
- data/lib/puppet-lint/plugins/check_resources/unquoted_resource_title.rb +9 -8
- data/lib/puppet-lint/plugins/check_strings/double_quoted_strings.rb +8 -8
- data/lib/puppet-lint/plugins/check_strings/only_variable_string.rb +29 -42
- data/lib/puppet-lint/plugins/check_strings/puppet_url_without_modules.rb +5 -4
- data/lib/puppet-lint/plugins/check_strings/quoted_booleans.rb +3 -2
- data/lib/puppet-lint/plugins/check_strings/single_quote_string_with_variables.rb +4 -3
- data/lib/puppet-lint/plugins/check_strings/variables_not_enclosed.rb +3 -2
- data/lib/puppet-lint/plugins/check_variables/variable_contains_dash.rb +9 -8
- data/lib/puppet-lint/plugins/check_variables/variable_is_lowercase.rb +9 -8
- data/lib/puppet-lint/plugins/check_whitespace/140chars.rb +9 -9
- data/lib/puppet-lint/plugins/check_whitespace/2sp_soft_tabs.rb +4 -3
- data/lib/puppet-lint/plugins/check_whitespace/80chars.rb +10 -10
- data/lib/puppet-lint/plugins/check_whitespace/arrow_alignment.rb +23 -22
- data/lib/puppet-lint/plugins/check_whitespace/hard_tabs.rb +3 -2
- data/lib/puppet-lint/plugins/check_whitespace/trailing_whitespace.rb +3 -2
- data/lib/puppet-lint/tasks/puppet-lint.rb +3 -3
- data/lib/puppet-lint/version.rb +1 -1
- data/puppet-lint.gemspec +4 -4
- data/spec/puppet-lint/bin_spec.rb +268 -140
- data/spec/puppet-lint/checks_spec.rb +229 -0
- data/spec/puppet-lint/configuration_spec.rb +10 -9
- data/spec/puppet-lint/data_spec.rb +84 -0
- data/spec/puppet-lint/ignore_overrides_spec.rb +71 -40
- data/spec/puppet-lint/lexer/token_spec.rb +1 -1
- data/spec/puppet-lint/lexer_spec.rb +306 -73
- data/spec/puppet-lint/plugins/check_classes/arrow_on_right_operand_line_spec.rb +12 -6
- data/spec/puppet-lint/plugins/check_classes/autoloader_layout_spec.rb +10 -10
- data/spec/puppet-lint/plugins/check_classes/class_inherits_from_params_class_spec.rb +15 -11
- data/spec/puppet-lint/plugins/check_classes/code_on_top_scope_spec.rb +26 -21
- data/spec/puppet-lint/plugins/check_classes/inherits_across_namespaces_spec.rb +3 -3
- data/spec/puppet-lint/plugins/check_classes/name_contains_uppercase_spec.rb +4 -5
- data/spec/puppet-lint/plugins/check_classes/names_containing_dash_spec.rb +13 -0
- data/spec/puppet-lint/plugins/check_classes/nested_classes_or_defines_spec.rb +33 -25
- data/spec/puppet-lint/plugins/check_classes/parameter_order_spec.rb +80 -55
- data/spec/puppet-lint/plugins/check_classes/right_to_left_relationship_spec.rb +2 -2
- data/spec/puppet-lint/plugins/check_classes/variable_scope_spec.rb +165 -130
- data/spec/puppet-lint/plugins/check_comments/slash_comments_spec.rb +2 -2
- data/spec/puppet-lint/plugins/check_comments/star_comments_spec.rb +53 -35
- data/spec/puppet-lint/plugins/check_conditionals/case_without_default_spec.rb +59 -49
- data/spec/puppet-lint/plugins/check_conditionals/selector_inside_resource_spec.rb +18 -14
- data/spec/puppet-lint/plugins/check_documentation/documentation_spec.rb +14 -10
- data/spec/puppet-lint/plugins/check_nodes/unquoted_node_name_spec.rb +7 -7
- data/spec/puppet-lint/plugins/check_resources/duplicate_params_spec.rb +54 -44
- data/spec/puppet-lint/plugins/check_resources/ensure_first_param_spec.rb +114 -89
- data/spec/puppet-lint/plugins/check_resources/ensure_not_symlink_target_spec.rb +41 -30
- data/spec/puppet-lint/plugins/check_resources/file_mode_spec.rb +46 -40
- data/spec/puppet-lint/plugins/check_resources/unquoted_file_mode_spec.rb +46 -40
- data/spec/puppet-lint/plugins/check_resources/unquoted_resource_title_spec.rb +95 -71
- data/spec/puppet-lint/plugins/check_strings/double_quoted_strings_spec.rb +28 -24
- data/spec/puppet-lint/plugins/check_strings/only_variable_string_spec.rb +11 -9
- data/spec/puppet-lint/plugins/check_strings/puppet_url_without_modules_spec.rb +1 -2
- data/spec/puppet-lint/plugins/check_strings/single_quote_string_with_variables_spec.rb +18 -14
- data/spec/puppet-lint/plugins/check_variables/variable_contains_dash_spec.rb +1 -1
- data/spec/puppet-lint/plugins/check_variables/variable_is_lowercase_spec.rb +1 -1
- data/spec/puppet-lint/plugins/check_whitespace/140chars_spec.rb +22 -15
- data/spec/puppet-lint/plugins/check_whitespace/2sp_soft_tabs_spec.rb +8 -6
- data/spec/puppet-lint/plugins/check_whitespace/80chars_spec.rb +23 -29
- data/spec/puppet-lint/plugins/check_whitespace/arrow_alignment_spec.rb +588 -494
- data/spec/puppet-lint/plugins/check_whitespace/hard_tabs_spec.rb +1 -1
- data/spec/puppet-lint/plugins/check_whitespace/trailing_whitespace_spec.rb +27 -19
- data/spec/puppet-lint_spec.rb +2 -12
- data/spec/spec_helper.rb +35 -30
- metadata +6 -5
- data/lib/puppet-lint/monkeypatches.rb +0 -2
- data/lib/puppet-lint/monkeypatches/string_percent.rb +0 -52
- data/lib/puppet-lint/monkeypatches/string_prepend.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3516ab4e6adac864c4fb3e43ce1f90bb5d81288c
|
4
|
+
data.tar.gz: a518428edb88a71dd7bb0708e060d5ee76fbd16c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70a5239c7b36ef55024580ebcda52e5bee45db6d12b21d2e957233930555dd3c91645a3f0076a393dfd79481511ab39a555689994aa4827c6a52b4326bc3745e
|
7
|
+
data.tar.gz: db50c67864f94a834f141af85eaf062a7a8d62f2c74fda37510bb959685e9594dd09406ca11f3b58338ade7154ffee51ed5e72dd53597ebb8503693237addf77
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
---
|
2
|
+
inherit_from: './.rubocop_todo.yml'
|
3
|
+
AllCops:
|
4
|
+
TargetRubyVersion: 1.9
|
5
|
+
|
6
|
+
Style/HashSyntax:
|
7
|
+
EnforcedStyle: hash_rockets
|
8
|
+
|
9
|
+
Layout/FirstArrayElementLineBreak:
|
10
|
+
Enabled: true
|
11
|
+
Layout/FirstHashElementLineBreak:
|
12
|
+
Enabled: true
|
13
|
+
Layout/FirstMethodArgumentLineBreak:
|
14
|
+
Enabled: true
|
15
|
+
Layout/FirstMethodParameterLineBreak:
|
16
|
+
Enabled: true
|
17
|
+
Layout/IndentArray:
|
18
|
+
EnforcedStyle: consistent
|
19
|
+
Layout/MultilineArrayBraceLayout:
|
20
|
+
EnforcedStyle: new_line
|
21
|
+
Layout/MultilineAssignmentLayout:
|
22
|
+
Enabled: true
|
23
|
+
EnforcedStyle: same_line
|
24
|
+
Layout/MultilineHashBraceLayout:
|
25
|
+
EnforcedStyle: new_line
|
26
|
+
Layout/MultilineMethodDefinitionBraceLayout:
|
27
|
+
EnforcedStyle: new_line
|
28
|
+
|
29
|
+
Style/AutoResourceCleanup:
|
30
|
+
Enabled: true
|
31
|
+
Style/BlockDelimiters:
|
32
|
+
EnforcedStyle: braces_for_chaining
|
33
|
+
Style/BracesAroundHashParameters:
|
34
|
+
EnforcedStyle: context_dependent
|
35
|
+
Style/Encoding:
|
36
|
+
Enabled: false
|
37
|
+
Style/MethodCallWithArgsParentheses:
|
38
|
+
Enabled: true
|
39
|
+
IgnoreMacros: true
|
40
|
+
IgnoredMethods:
|
41
|
+
- puts
|
42
|
+
- require
|
43
|
+
- include
|
44
|
+
- it
|
45
|
+
- context
|
46
|
+
- describe
|
47
|
+
- to
|
48
|
+
- to_not
|
49
|
+
- raise
|
50
|
+
- desc
|
51
|
+
- task
|
52
|
+
- exit
|
53
|
+
- should
|
54
|
+
- gem
|
55
|
+
- group
|
56
|
+
- attr_reader
|
57
|
+
- attr_accessor
|
58
|
+
- attr_writer
|
59
|
+
- source
|
60
|
+
Style/MethodCalledOnDoEndBlock:
|
61
|
+
Enabled: true
|
62
|
+
Style/RegexpLiteral:
|
63
|
+
EnforcedStyle: percent_r
|
64
|
+
Style/TrailingCommaInArguments:
|
65
|
+
EnforcedStyleForMultiline: comma
|
66
|
+
Style/TrailingCommaInLiteral:
|
67
|
+
EnforcedStyleForMultiline: comma
|
68
|
+
Style/FormatStringToken:
|
69
|
+
Enabled: false
|
70
|
+
Style/FileName:
|
71
|
+
Exclude:
|
72
|
+
- 'lib/puppet-lint.rb'
|
73
|
+
- 'lib/puppet-lint/tasks/puppet-lint.rb'
|
74
|
+
- 'spec/puppet-lint_spec.rb'
|
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2017-08-28 12:57:58 +1000 using RuboCop version 0.49.1.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 3
|
10
|
+
# Configuration parameters: Include.
|
11
|
+
# Include: **/Gemfile, **/gems.rb
|
12
|
+
Bundler/DuplicatedGem:
|
13
|
+
Exclude:
|
14
|
+
- 'Gemfile'
|
15
|
+
|
16
|
+
# Offense count: 2
|
17
|
+
# Cop supports --auto-correct.
|
18
|
+
# Configuration parameters: Include, TreatCommentsAsGroupSeparators.
|
19
|
+
# Include: **/Gemfile, **/gems.rb
|
20
|
+
Bundler/OrderedGems:
|
21
|
+
Exclude:
|
22
|
+
- 'Gemfile'
|
23
|
+
|
24
|
+
# Offense count: 9
|
25
|
+
# Configuration parameters: AllowSafeAssignment.
|
26
|
+
Lint/AssignmentInCondition:
|
27
|
+
Exclude:
|
28
|
+
- 'lib/puppet-lint/lexer.rb'
|
29
|
+
- 'lib/puppet-lint/plugins/check_classes/variable_scope.rb'
|
30
|
+
|
31
|
+
# Offense count: 52
|
32
|
+
Metrics/AbcSize:
|
33
|
+
Max: 153
|
34
|
+
|
35
|
+
# Offense count: 121
|
36
|
+
# Configuration parameters: CountComments, ExcludedMethods.
|
37
|
+
Metrics/BlockLength:
|
38
|
+
Max: 1136
|
39
|
+
|
40
|
+
# Offense count: 8
|
41
|
+
# Configuration parameters: CountBlocks.
|
42
|
+
Metrics/BlockNesting:
|
43
|
+
Max: 5
|
44
|
+
|
45
|
+
# Offense count: 2
|
46
|
+
# Configuration parameters: CountComments.
|
47
|
+
Metrics/ClassLength:
|
48
|
+
Max: 383
|
49
|
+
|
50
|
+
# Offense count: 20
|
51
|
+
Metrics/CyclomaticComplexity:
|
52
|
+
Max: 26
|
53
|
+
|
54
|
+
# Offense count: 238
|
55
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
56
|
+
# URISchemes: http, https
|
57
|
+
Metrics/LineLength:
|
58
|
+
Max: 223
|
59
|
+
|
60
|
+
# Offense count: 65
|
61
|
+
# Configuration parameters: CountComments.
|
62
|
+
Metrics/MethodLength:
|
63
|
+
Max: 94
|
64
|
+
|
65
|
+
# Offense count: 18
|
66
|
+
Metrics/PerceivedComplexity:
|
67
|
+
Max: 25
|
68
|
+
|
69
|
+
# Offense count: 1
|
70
|
+
# Cop supports --auto-correct.
|
71
|
+
Performance/RedundantBlockCall:
|
72
|
+
Exclude:
|
73
|
+
- 'lib/puppet-lint/tasks/puppet-lint.rb'
|
74
|
+
|
75
|
+
# Offense count: 7
|
76
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
77
|
+
# SupportedStyles: nested, compact
|
78
|
+
Style/ClassAndModuleChildren:
|
79
|
+
Exclude:
|
80
|
+
- 'lib/puppet-lint.rb'
|
81
|
+
- 'lib/puppet-lint/bin.rb'
|
82
|
+
- 'lib/puppet-lint/checkplugin.rb'
|
83
|
+
- 'lib/puppet-lint/checks.rb'
|
84
|
+
- 'lib/puppet-lint/data.rb'
|
85
|
+
- 'lib/puppet-lint/optparser.rb'
|
86
|
+
|
87
|
+
# Offense count: 20
|
88
|
+
Style/MultilineBlockChain:
|
89
|
+
Enabled: false
|
data/.travis.yml
CHANGED
@@ -6,16 +6,18 @@ branches:
|
|
6
6
|
only:
|
7
7
|
- master
|
8
8
|
bundler_args: --without development system_tests
|
9
|
+
script:
|
10
|
+
- bundle exec rake $CHECK
|
11
|
+
env:
|
12
|
+
- CHECK=test
|
9
13
|
rvm:
|
10
|
-
- 1.8.7
|
11
14
|
- 1.9.3
|
12
15
|
- 2.0.0
|
13
|
-
- 2.1.
|
14
|
-
- 2.
|
15
|
-
- 2.4
|
16
|
+
- 2.1.10
|
17
|
+
- 2.2.7
|
18
|
+
- 2.3.4
|
19
|
+
- 2.4.1
|
16
20
|
matrix:
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
email:
|
21
|
-
- tim@bombasticmonkey.com
|
21
|
+
include:
|
22
|
+
- rvm: 2.4.1
|
23
|
+
env: CHECK=rubocop
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,59 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [2.3.1](https://github.com/rodjek/puppet-lint/tree/2.3.1) (2017-09-27)
|
4
|
+
[Full Changelog](https://github.com/rodjek/puppet-lint/compare/2.3.0...2.3.1)
|
5
|
+
|
6
|
+
**Fixed bugs:**
|
7
|
+
|
8
|
+
- NoMethodError: undefined method `type' for nil:NilClass [\#732](https://github.com/rodjek/puppet-lint/issues/732)
|
9
|
+
- NoMethodError: undefined method `end\_with?' for nil:NilClass [\#727](https://github.com/rodjek/puppet-lint/issues/727)
|
10
|
+
- puppet-lint not applying some lint:ignore statements when there are more then 2 on the same line [\#726](https://github.com/rodjek/puppet-lint/issues/726)
|
11
|
+
- optional paramter warning false positve when inheriting params [\#716](https://github.com/rodjek/puppet-lint/issues/716)
|
12
|
+
- invalid byte sequence in UTF-8 in selmodule-example.pp [\#714](https://github.com/rodjek/puppet-lint/issues/714)
|
13
|
+
- puppet-lint --fix encountered an error that it doesn't know how to handle [\#706](https://github.com/rodjek/puppet-lint/issues/706)
|
14
|
+
- Mangled file after running puppet-lint due to chained function call [\#703](https://github.com/rodjek/puppet-lint/issues/703)
|
15
|
+
- `incompatible encoding regexp match` for non-printing characters in place of space [\#693](https://github.com/rodjek/puppet-lint/issues/693)
|
16
|
+
- Unhandled error case [\#691](https://github.com/rodjek/puppet-lint/issues/691)
|
17
|
+
|
18
|
+
**Closed issues:**
|
19
|
+
|
20
|
+
- puppet-lint has encountered an error that it doesn't know how to handle [\#750](https://github.com/rodjek/puppet-lint/issues/750)
|
21
|
+
- Variable use like "a+1 = ${$a + 1}" isn't reported but silently changed by --fix to "a+1 = ${a} + 1" [\#749](https://github.com/rodjek/puppet-lint/issues/749)
|
22
|
+
- using --fix changes line endings [\#748](https://github.com/rodjek/puppet-lint/issues/748)
|
23
|
+
- Puppet lint syntax error - puppet parser validate no issues [\#746](https://github.com/rodjek/puppet-lint/issues/746)
|
24
|
+
- Error not handled [\#745](https://github.com/rodjek/puppet-lint/issues/745)
|
25
|
+
- Whoops, not sure why. ArgumentError: bad value for range [\#742](https://github.com/rodjek/puppet-lint/issues/742)
|
26
|
+
- ArgumentError: bad value for range [\#741](https://github.com/rodjek/puppet-lint/issues/741)
|
27
|
+
- Line numbers off after multi-line strings with variables [\#736](https://github.com/rodjek/puppet-lint/issues/736)
|
28
|
+
- Whoops! It looks like puppet-lint has encountered an error [\#729](https://github.com/rodjek/puppet-lint/issues/729)
|
29
|
+
- puppet lint config log\_format not working [\#725](https://github.com/rodjek/puppet-lint/issues/725)
|
30
|
+
- Quoted booleans in Puppet5 for Enum type declarations. [\#720](https://github.com/rodjek/puppet-lint/issues/720)
|
31
|
+
- Chaining arrow syntax fix introduces trailing whitespaces [\#695](https://github.com/rodjek/puppet-lint/issues/695)
|
32
|
+
- Refactor check\_comments.rb [\#587](https://github.com/rodjek/puppet-lint/issues/587)
|
33
|
+
- Puppethack 12/2016 Issues [\#583](https://github.com/rodjek/puppet-lint/issues/583)
|
34
|
+
- Allow multiple block-level ignore comments [\#498](https://github.com/rodjek/puppet-lint/issues/498)
|
35
|
+
- puppet-lint crashes with "invalid byte sequence in UTF-8 \(ArgumentError\)" [\#458](https://github.com/rodjek/puppet-lint/issues/458)
|
36
|
+
|
37
|
+
**Merged pull requests:**
|
38
|
+
|
39
|
+
- Render the ${} enclosures as part of the string tokens [\#752](https://github.com/rodjek/puppet-lint/pull/752) ([rodjek](https://github.com/rodjek))
|
40
|
+
- Open manifest as binary when writing fixed manifest [\#751](https://github.com/rodjek/puppet-lint/pull/751) ([rodjek](https://github.com/rodjek))
|
41
|
+
- Remove monkeypatches to implement String\#% [\#744](https://github.com/rodjek/puppet-lint/pull/744) ([rodjek](https://github.com/rodjek))
|
42
|
+
- Add unit tests for PuppetLint::Checks [\#743](https://github.com/rodjek/puppet-lint/pull/743) ([rodjek](https://github.com/rodjek))
|
43
|
+
- Update CI configuration [\#739](https://github.com/rodjek/puppet-lint/pull/739) ([rodjek](https://github.com/rodjek))
|
44
|
+
- Rubocop compliance [\#738](https://github.com/rodjek/puppet-lint/pull/738) ([rodjek](https://github.com/rodjek))
|
45
|
+
- Fix line numbers being off with multi-line strings containing variables [\#737](https://github.com/rodjek/puppet-lint/pull/737) ([cbowman0](https://github.com/cbowman0))
|
46
|
+
- Split control comments into words before parsing [\#735](https://github.com/rodjek/puppet-lint/pull/735) ([rodjek](https://github.com/rodjek))
|
47
|
+
- Handle unicode spaces in the tokeniser [\#734](https://github.com/rodjek/puppet-lint/pull/734) ([rodjek](https://github.com/rodjek))
|
48
|
+
- Handle SE Linux policy package files [\#733](https://github.com/rodjek/puppet-lint/pull/733) ([rodjek](https://github.com/rodjek))
|
49
|
+
- Take into account Optional data type when checking parameter order [\#731](https://github.com/rodjek/puppet-lint/pull/731) ([rodjek](https://github.com/rodjek))
|
50
|
+
- Read the manifest files as UTF-8 [\#730](https://github.com/rodjek/puppet-lint/pull/730) ([rodjek](https://github.com/rodjek))
|
51
|
+
- Improve handling of unterminated double quoted strings [\#728](https://github.com/rodjek/puppet-lint/pull/728) ([rodjek](https://github.com/rodjek))
|
52
|
+
- Chaining arrow syntax fix introduces trailing whitespaces [\#708](https://github.com/rodjek/puppet-lint/pull/708) ([rnelson0](https://github.com/rnelson0))
|
53
|
+
- Add helper methods to add and remove tokens while maintaining the token links [\#694](https://github.com/rodjek/puppet-lint/pull/694) ([Darhazer](https://github.com/Darhazer))
|
54
|
+
- Code style improvements [\#661](https://github.com/rodjek/puppet-lint/pull/661) ([Darhazer](https://github.com/Darhazer))
|
55
|
+
- Plugins: Improve code readability [\#658](https://github.com/rodjek/puppet-lint/pull/658) ([Darhazer](https://github.com/Darhazer))
|
56
|
+
|
3
57
|
## [2.3.0](https://github.com/rodjek/puppet-lint/tree/2.3.0) (2017-07-12)
|
4
58
|
[Full Changelog](https://github.com/rodjek/puppet-lint/compare/2.2.1...2.3.0)
|
5
59
|
|
data/Gemfile
CHANGED
@@ -25,6 +25,9 @@ group :test do
|
|
25
25
|
# requires ruby 1.9+, on 1.8 we'll fall back to the old regex parsing
|
26
26
|
gem 'rspec-json_expectations', '~> 1.4'
|
27
27
|
end
|
28
|
+
|
29
|
+
gem 'rubocop', '0.49.1' if RUBY_VERSION > '2.0'
|
30
|
+
gem 'simplecov', :require => false
|
28
31
|
end
|
29
32
|
|
30
33
|
group :development do
|
data/Rakefile
CHANGED
@@ -8,12 +8,23 @@ RSpec::Core::RakeTask.new(:test)
|
|
8
8
|
|
9
9
|
begin
|
10
10
|
require 'github_changelog_generator/task'
|
11
|
-
GitHubChangelogGenerator::RakeTask.new
|
11
|
+
GitHubChangelogGenerator::RakeTask.new(:changelog) do |config|
|
12
12
|
version = PuppetLint::VERSION
|
13
|
-
config.future_release =
|
14
|
-
config.exclude_labels = %w
|
13
|
+
config.future_release = version.to_s
|
14
|
+
config.exclude_labels = %w[duplicate question invalid wontfix release-pr]
|
15
15
|
end
|
16
16
|
rescue LoadError
|
17
|
+
$stderr.puts 'Changelog generation requires Ruby 2.0 or higher'
|
18
|
+
end
|
19
|
+
|
20
|
+
begin
|
21
|
+
require 'rubocop/rake_task'
|
22
|
+
|
23
|
+
RuboCop::RakeTask.new(:rubocop) do |task|
|
24
|
+
task.options = %w[-D -E]
|
25
|
+
end
|
26
|
+
rescue LoadError
|
27
|
+
$stderr.puts 'Rubocop is not available for this version of Ruby.'
|
17
28
|
end
|
18
29
|
|
19
30
|
# vim: syntax=ruby
|
data/appveyor.yml
CHANGED
@@ -12,6 +12,7 @@ environment:
|
|
12
12
|
- RUBY_VERSION: 21
|
13
13
|
- RUBY_VERSION: 22
|
14
14
|
- RUBY_VERSION: 23-x64
|
15
|
+
- RUBY_VERSION: 24-x64
|
15
16
|
|
16
17
|
install:
|
17
18
|
- SET PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
|
@@ -26,7 +27,3 @@ before_test:
|
|
26
27
|
|
27
28
|
test_script:
|
28
29
|
- bundle exec rake test
|
29
|
-
|
30
|
-
notifications:
|
31
|
-
email:
|
32
|
-
- tim@bombasticmonkey.com
|
data/bin/puppet-lint
CHANGED
data/lib/puppet-lint.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
1
3
|
require 'set'
|
2
4
|
require 'json'
|
3
5
|
require 'puppet-lint/version'
|
@@ -6,7 +8,6 @@ require 'puppet-lint/configuration'
|
|
6
8
|
require 'puppet-lint/data'
|
7
9
|
require 'puppet-lint/checks'
|
8
10
|
require 'puppet-lint/bin'
|
9
|
-
require 'puppet-lint/monkeypatches'
|
10
11
|
|
11
12
|
class PuppetLint::NoCodeError < StandardError; end
|
12
13
|
class PuppetLint::NoFix < StandardError; end
|
@@ -47,7 +48,7 @@ class PuppetLint
|
|
47
48
|
# Public: Initialise a new PuppetLint object.
|
48
49
|
def initialize
|
49
50
|
@code = nil
|
50
|
-
@statistics = {:error => 0, :warning => 0, :fixed => 0, :ignored => 0}
|
51
|
+
@statistics = { :error => 0, :warning => 0, :fixed => 0, :ignored => 0 }
|
51
52
|
@manifest = ''
|
52
53
|
end
|
53
54
|
|
@@ -70,10 +71,16 @@ class PuppetLint
|
|
70
71
|
#
|
71
72
|
# Returns nothing.
|
72
73
|
def file=(path)
|
73
|
-
|
74
|
-
|
75
|
-
|
74
|
+
return unless File.exist?(path)
|
75
|
+
|
76
|
+
@path = path
|
77
|
+
File.open(path, 'r:UTF-8') do |f|
|
78
|
+
@code = f.read
|
76
79
|
end
|
80
|
+
|
81
|
+
# Check if the input is an SE Linux policy package file (which also use
|
82
|
+
# the .pp extension), which all have the first 4 bytes 0xf97cff8f.
|
83
|
+
@code = '' if @code[0..3].unpack('V').first == 0xf97cff8f
|
77
84
|
end
|
78
85
|
|
79
86
|
# Internal: Retrieve the format string to be used when writing problems to
|
@@ -85,12 +92,11 @@ class PuppetLint
|
|
85
92
|
if configuration.log_format == ''
|
86
93
|
## recreate previous old log format as far as thats possible.
|
87
94
|
format = '%{KIND}: %{message} on line %{line}'
|
88
|
-
if configuration.with_filename
|
89
|
-
format.prepend '%{path} - '
|
90
|
-
end
|
95
|
+
format.prepend('%{path} - ') if configuration.with_filename
|
91
96
|
configuration.log_format = format
|
92
97
|
end
|
93
|
-
|
98
|
+
|
99
|
+
configuration.log_format
|
94
100
|
end
|
95
101
|
|
96
102
|
# Internal: Format a problem message and print it to STDOUT.
|
@@ -101,9 +107,8 @@ class PuppetLint
|
|
101
107
|
def format_message(message)
|
102
108
|
format = log_format
|
103
109
|
puts format % message
|
104
|
-
|
105
|
-
|
106
|
-
end
|
110
|
+
|
111
|
+
puts " #{message[:reason]}" if message[:kind] == :ignored && !message[:reason].nil?
|
107
112
|
end
|
108
113
|
|
109
114
|
# Internal: Get the line of the manifest on which the problem was found
|
@@ -112,8 +117,7 @@ class PuppetLint
|
|
112
117
|
#
|
113
118
|
# Returns the problematic line as a string.
|
114
119
|
def get_context(message)
|
115
|
-
|
116
|
-
return line.strip
|
120
|
+
PuppetLint::Data.manifest_lines[message[:line] - 1].strip
|
117
121
|
end
|
118
122
|
|
119
123
|
# Internal: Print out the line of the manifest on which the problem was found
|
@@ -126,9 +130,9 @@ class PuppetLint
|
|
126
130
|
return if message[:check] == 'documentation'
|
127
131
|
return if message[:kind] == :fixed
|
128
132
|
line = get_context(message)
|
129
|
-
offset = line.index(
|
133
|
+
offset = line.index(%r{\S}) || 1
|
130
134
|
puts "\n #{line.strip}"
|
131
|
-
printf
|
135
|
+
printf("%#{message[:column] + 2 - offset}s\n\n", '^')
|
132
136
|
end
|
133
137
|
|
134
138
|
# Internal: Print the reported problems with a manifest to stdout.
|
@@ -149,12 +153,14 @@ class PuppetLint
|
|
149
153
|
message['context'] = get_context(message) if configuration.with_context
|
150
154
|
json << message
|
151
155
|
else
|
152
|
-
format_message
|
156
|
+
format_message(message)
|
153
157
|
print_context(message) if configuration.with_context
|
154
158
|
end
|
155
159
|
end
|
156
160
|
end
|
157
161
|
puts JSON.pretty_generate(json) if configuration.json
|
162
|
+
|
163
|
+
$stderr.puts 'Try running `puppet parser validate <file>`' if problems.any? { |p| p[:check] == :syntax }
|
158
164
|
end
|
159
165
|
|
160
166
|
# Public: Determine if PuppetLint found any errors in the manifest.
|
@@ -177,9 +183,7 @@ class PuppetLint
|
|
177
183
|
# Returns nothing.
|
178
184
|
# Raises PuppetLint::NoCodeError if no manifest code has been loaded.
|
179
185
|
def run
|
180
|
-
if @code.nil?
|
181
|
-
raise PuppetLint::NoCodeError
|
182
|
-
end
|
186
|
+
raise PuppetLint::NoCodeError if @code.nil?
|
183
187
|
|
184
188
|
if @code.empty?
|
185
189
|
@problems = []
|
@@ -198,7 +202,7 @@ class PuppetLint
|
|
198
202
|
#
|
199
203
|
# Returns nothing.
|
200
204
|
def print_problems
|
201
|
-
report
|
205
|
+
report(@problems)
|
202
206
|
end
|
203
207
|
|
204
208
|
# Public: Define a new check.
|