puppet-syntax 4.1.1 → 6.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/.github/release.yml +40 -0
- data/.github/workflows/release.yml +21 -14
- data/.github/workflows/test.yml +25 -13
- data/.rubocop_todo.yml +3 -25
- data/CHANGELOG.md +27 -0
- data/Gemfile +3 -1
- data/Rakefile +2 -13
- data/lib/puppet-syntax/hiera.rb +5 -0
- data/lib/puppet-syntax/templates.rb +2 -6
- data/lib/puppet-syntax/version.rb +1 -1
- data/lib/puppet-syntax.rb +8 -3
- data/puppet-syntax.gemspec +2 -5
- data/spec/fixtures/hiera/hiera_key_no_value.yaml +2 -0
- data/spec/fixtures/test_module/templates/fail_error.erb +1 -1
- data/spec/puppet-syntax/hiera_spec.rb +8 -0
- data/spec/puppet-syntax/tasks/puppet-syntax_spec.rb +36 -21
- data/spec/puppet-syntax/templates_spec.rb +4 -7
- metadata +8 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d209405021810780763afb46ea91a1cd32f73bf00c377e80d9a4d54a7b3e393
|
4
|
+
data.tar.gz: 88032a92bef8f809a9401192d77ed001e74cc209506df50e2f95aac00563cbe2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94cdfcb6bbfc0b842e1f516ad47554060bf55269e75af792b3f8711fa55ab00fa50859d731cc61b1fde3b3dee1724f62e3f8285c830fdff1e03a940e4df3a50c
|
7
|
+
data.tar.gz: b7fac42960a853446d121bc41f14ea6f8972951b4469caebf6f0280513daa8116f45329ab847f832082061260e09aca4bc2ccab27ee6fdd49bbd226f05fdf01c
|
data/.github/release.yml
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
---
|
2
|
+
# https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
|
3
|
+
|
4
|
+
changelog:
|
5
|
+
exclude:
|
6
|
+
labels:
|
7
|
+
- duplicate
|
8
|
+
- invalid
|
9
|
+
- modulesync
|
10
|
+
- question
|
11
|
+
- skip-changelog
|
12
|
+
- wont-fix
|
13
|
+
- wontfix
|
14
|
+
- github_actions
|
15
|
+
|
16
|
+
categories:
|
17
|
+
- title: Breaking Changes 🛠
|
18
|
+
labels:
|
19
|
+
- backwards-incompatible
|
20
|
+
|
21
|
+
- title: New Features 🎉
|
22
|
+
labels:
|
23
|
+
- enhancement
|
24
|
+
|
25
|
+
- title: Bug Fixes 🐛
|
26
|
+
labels:
|
27
|
+
- bug
|
28
|
+
|
29
|
+
- title: Documentation Updates 📚
|
30
|
+
labels:
|
31
|
+
- documentation
|
32
|
+
- docs
|
33
|
+
|
34
|
+
- title: Dependency Updates ⬆️
|
35
|
+
labels:
|
36
|
+
- dependencies
|
37
|
+
|
38
|
+
- title: Other Changes
|
39
|
+
labels:
|
40
|
+
- "*"
|
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
name: Release
|
2
3
|
|
3
4
|
on:
|
@@ -7,22 +8,18 @@ on:
|
|
7
8
|
|
8
9
|
jobs:
|
9
10
|
release:
|
10
|
-
runs-on: ubuntu-
|
11
|
+
runs-on: ubuntu-24.04
|
12
|
+
environment: release
|
11
13
|
if: github.repository_owner == 'voxpupuli'
|
14
|
+
|
15
|
+
# required permissions to make a GitHub release and push to the GitHub Gem Registry
|
16
|
+
permissions:
|
17
|
+
id-token: write
|
18
|
+
contents: write
|
19
|
+
packages: write
|
20
|
+
|
12
21
|
steps:
|
13
|
-
- uses:
|
14
|
-
- name: Install Ruby 3.1
|
15
|
-
uses: ruby/setup-ruby@v1
|
16
|
-
with:
|
17
|
-
ruby-version: '3.1'
|
18
|
-
env:
|
19
|
-
BUNDLE_WITHOUT: release
|
20
|
-
- name: Build gem
|
21
|
-
run: gem build --strict --verbose *.gemspec
|
22
|
-
- name: Publish gem to rubygems.org
|
23
|
-
run: gem push *.gem
|
24
|
-
env:
|
25
|
-
GEM_HOST_API_KEY: '${{ secrets.RUBYGEMS_AUTH_TOKEN }}'
|
22
|
+
- uses: voxpupuli/ruby-release@v0
|
26
23
|
- name: Setup GitHub packages access
|
27
24
|
run: |
|
28
25
|
mkdir -p ~/.gem
|
@@ -30,3 +27,13 @@ jobs:
|
|
30
27
|
chmod 0600 ~/.gem/credentials
|
31
28
|
- name: Publish gem to GitHub packages
|
32
29
|
run: gem push --key github --host https://rubygems.pkg.github.com/${{ github.repository_owner }} *.gem
|
30
|
+
- name: Create Release Page
|
31
|
+
shell: bash
|
32
|
+
env:
|
33
|
+
GH_TOKEN: ${{ github.token }}
|
34
|
+
run: gh release create ${{ github.ref_name }} --generate-notes
|
35
|
+
- name: Attach gem to GitHub Release
|
36
|
+
shell: bash
|
37
|
+
env:
|
38
|
+
GH_TOKEN: ${{ github.token }}
|
39
|
+
run: gh release upload ${{ github.ref_name }} *.gem
|
data/.github/workflows/test.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
name: Test
|
2
3
|
|
3
4
|
on:
|
@@ -8,11 +9,16 @@ on:
|
|
8
9
|
env:
|
9
10
|
BUNDLE_WITHOUT: development:release
|
10
11
|
|
12
|
+
permissions:
|
13
|
+
contents: read
|
14
|
+
|
11
15
|
jobs:
|
12
|
-
|
16
|
+
rubocop_and_matrix:
|
13
17
|
env:
|
14
18
|
BUNDLE_WITHOUT: release
|
15
|
-
runs-on: ubuntu-
|
19
|
+
runs-on: ubuntu-24.04
|
20
|
+
outputs:
|
21
|
+
ruby: ${{ steps.ruby.outputs.versions }}
|
16
22
|
steps:
|
17
23
|
- uses: actions/checkout@v4
|
18
24
|
- name: Install Ruby ${{ matrix.ruby }}
|
@@ -22,30 +28,34 @@ jobs:
|
|
22
28
|
bundler-cache: true
|
23
29
|
- name: Run Rubocop
|
24
30
|
run: bundle exec rake rubocop
|
31
|
+
- id: ruby
|
32
|
+
uses: voxpupuli/ruby-version@v1
|
33
|
+
|
25
34
|
test:
|
26
|
-
runs-on: ubuntu-
|
35
|
+
runs-on: ubuntu-24.04
|
36
|
+
needs: rubocop_and_matrix
|
27
37
|
strategy:
|
28
38
|
fail-fast: false
|
29
39
|
matrix:
|
30
|
-
ruby:
|
31
|
-
- "3.2"
|
32
|
-
- "3.1"
|
33
|
-
- "3.0"
|
34
|
-
- "2.7"
|
40
|
+
ruby: ${{ fromJSON(needs.rubocop_and_matrix.outputs.ruby) }}
|
35
41
|
puppet:
|
36
42
|
- "~> 8.0"
|
37
43
|
- "~> 7.0"
|
38
|
-
- "https://github.com/
|
44
|
+
- "https://github.com/OpenVoxProject/puppet.git#main"
|
39
45
|
exclude:
|
46
|
+
- ruby: '3.3'
|
47
|
+
puppet: '~> 7.0'
|
48
|
+
- ruby: '3.4'
|
49
|
+
puppet: '~> 7.0'
|
40
50
|
- ruby: "3.0"
|
41
51
|
puppet: "~> 8.0"
|
42
52
|
- ruby: "2.7"
|
43
53
|
puppet: "~> 8.0"
|
44
54
|
- ruby: "3.0"
|
45
|
-
puppet: "https://github.com/
|
55
|
+
puppet: "https://github.com/OpenVoxProject/puppet.git#main"
|
46
56
|
- ruby: "2.7"
|
47
|
-
puppet: "https://github.com/
|
48
|
-
name: "Ruby ${{ matrix.ruby }} -
|
57
|
+
puppet: "https://github.com/OpenVoxProject/puppet.git#main"
|
58
|
+
name: "Ruby ${{ matrix.ruby }} - OpenVox ${{ matrix.puppet }}"
|
49
59
|
env:
|
50
60
|
PUPPET_VERSION: ${{ matrix.puppet }}
|
51
61
|
steps:
|
@@ -55,6 +65,8 @@ jobs:
|
|
55
65
|
with:
|
56
66
|
ruby-version: ${{ matrix.ruby }}
|
57
67
|
bundler-cache: true
|
68
|
+
- name: Output Ruby environment
|
69
|
+
run: bundle env
|
58
70
|
- name: Run tests
|
59
71
|
run: bundle exec rake
|
60
72
|
- name: Build gem
|
@@ -62,7 +74,7 @@ jobs:
|
|
62
74
|
|
63
75
|
tests:
|
64
76
|
needs:
|
65
|
-
-
|
77
|
+
- rubocop_and_matrix
|
66
78
|
- test
|
67
79
|
runs-on: ubuntu-latest
|
68
80
|
name: Test suite
|
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2025-05-09 08:19:08 UTC using RuboCop version 1.67.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
@@ -29,19 +29,13 @@ Lint/SuppressedException:
|
|
29
29
|
Exclude:
|
30
30
|
- 'Rakefile'
|
31
31
|
|
32
|
-
# Offense count: 1
|
33
|
-
# This cop supports unsafe autocorrection (--autocorrect-all).
|
34
|
-
# Configuration parameters: AutoCorrect.
|
35
|
-
Lint/UselessAssignment:
|
36
|
-
Exclude:
|
37
|
-
- 'lib/puppet-syntax/templates.rb'
|
38
|
-
|
39
32
|
# Offense count: 4
|
40
33
|
# Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, CheckDefinitionPathHierarchyRoots, Regex, IgnoreExecutableScripts, AllowedAcronyms.
|
41
34
|
# CheckDefinitionPathHierarchyRoots: lib, spec, test, src
|
42
35
|
# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
|
43
36
|
Naming/FileName:
|
44
37
|
Exclude:
|
38
|
+
- 'Rakefile.rb'
|
45
39
|
- 'lib/puppet-syntax.rb'
|
46
40
|
- 'lib/puppet-syntax/tasks/puppet-syntax.rb'
|
47
41
|
- 'spec/puppet-syntax/tasks/puppet-syntax_spec.rb'
|
@@ -88,16 +82,6 @@ RSpec/DescribedClass:
|
|
88
82
|
RSpec/ExampleLength:
|
89
83
|
Max: 17
|
90
84
|
|
91
|
-
# Offense count: 4
|
92
|
-
# Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
|
93
|
-
# Include: **/*_spec*rb*, **/spec/**/*
|
94
|
-
RSpec/FilePath:
|
95
|
-
Exclude:
|
96
|
-
- 'spec/puppet-syntax/hiera_spec.rb'
|
97
|
-
- 'spec/puppet-syntax/manifests_spec.rb'
|
98
|
-
- 'spec/puppet-syntax/templates_spec.rb'
|
99
|
-
- 'spec/puppet-syntax_spec.rb'
|
100
|
-
|
101
85
|
# Offense count: 29
|
102
86
|
RSpec/MultipleExpectations:
|
103
87
|
Max: 11
|
@@ -134,12 +118,6 @@ RSpec/SubjectDeclaration:
|
|
134
118
|
- 'spec/puppet-syntax/manifests_spec.rb'
|
135
119
|
- 'spec/puppet-syntax/templates_spec.rb'
|
136
120
|
|
137
|
-
# Offense count: 1
|
138
|
-
# This cop supports safe autocorrection (--autocorrect).
|
139
|
-
Rake/Desc:
|
140
|
-
Exclude:
|
141
|
-
- 'Rakefile'
|
142
|
-
|
143
121
|
# Offense count: 1
|
144
122
|
# This cop supports unsafe autocorrection (--autocorrect-all).
|
145
123
|
# Configuration parameters: EnforcedStyle.
|
@@ -244,7 +222,7 @@ Style/SymbolProc:
|
|
244
222
|
- 'lib/puppet-syntax/manifests.rb'
|
245
223
|
- 'lib/puppet-syntax/templates.rb'
|
246
224
|
|
247
|
-
# Offense count:
|
225
|
+
# Offense count: 4
|
248
226
|
# This cop supports safe autocorrection (--autocorrect).
|
249
227
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
|
250
228
|
# URISchemes: http, https
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,33 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
|
5
|
+
## [v6.0.0](https://github.com/voxpupuli/puppet-syntax/tree/v6.0.0) (2025-06-10)
|
6
|
+
|
7
|
+
[Full Changelog](https://github.com/voxpupuli/puppet-syntax/compare/v5.0.0...v6.0.0)
|
8
|
+
|
9
|
+
**Breaking changes:**
|
10
|
+
|
11
|
+
- Switch from puppet to openvox [\#189](https://github.com/voxpupuli/puppet-syntax/pull/189) ([bastelfreak](https://github.com/bastelfreak))
|
12
|
+
|
13
|
+
## [v5.0.0](https://github.com/voxpupuli/puppet-syntax/tree/v5.0.0) (2025-05-23)
|
14
|
+
|
15
|
+
[Full Changelog](https://github.com/voxpupuli/puppet-syntax/compare/v4.1.1...v5.0.0)
|
16
|
+
|
17
|
+
**Breaking changes:**
|
18
|
+
|
19
|
+
- Set default exclude paths [\#181](https://github.com/voxpupuli/puppet-syntax/pull/181) ([bastelfreak](https://github.com/bastelfreak))
|
20
|
+
- Enable Hiera syntax check [\#167](https://github.com/voxpupuli/puppet-syntax/pull/167) ([bastelfreak](https://github.com/bastelfreak))
|
21
|
+
|
22
|
+
**Implemented enhancements:**
|
23
|
+
|
24
|
+
- Detect Hiera files that are not valid hashes [\#184](https://github.com/voxpupuli/puppet-syntax/pull/184) ([bastelfreak](https://github.com/bastelfreak))
|
25
|
+
- CI: Switch to voxpupuli/ruby-version@v1 & Add Ruby 3.4 support [\#180](https://github.com/voxpupuli/puppet-syntax/pull/180) ([bastelfreak](https://github.com/bastelfreak))
|
26
|
+
|
27
|
+
**Merged pull requests:**
|
28
|
+
|
29
|
+
- Drop unused pry & rb-readline dev dependencies [\#182](https://github.com/voxpupuli/puppet-syntax/pull/182) ([bastelfreak](https://github.com/bastelfreak))
|
30
|
+
- Cleanup Rakefile; remove legacy tasks [\#173](https://github.com/voxpupuli/puppet-syntax/pull/173) ([bastelfreak](https://github.com/bastelfreak))
|
31
|
+
|
5
32
|
## [v4.1.1](https://github.com/voxpupuli/puppet-syntax/tree/v4.1.1) (2024-04-04)
|
6
33
|
|
7
34
|
[Full Changelog](https://github.com/voxpupuli/puppet-syntax/compare/v4.1.0...v4.1.1)
|
data/Gemfile
CHANGED
@@ -19,7 +19,9 @@ gemspec
|
|
19
19
|
|
20
20
|
# Override gemspec for CI matrix builds.
|
21
21
|
# But only if the environment variable is set
|
22
|
-
gem '
|
22
|
+
gem 'openvox', *location_for(ENV['PUPPET_VERSION']) if ENV['PUPPET_VERSION']
|
23
|
+
# Puppet on Ruby 3.3 / 3.4 has some missing dependencies
|
24
|
+
gem 'syslog', '~> 0.3' if RUBY_VERSION >= '3.4'
|
23
25
|
|
24
26
|
group :test do
|
25
27
|
gem 'rspec'
|
data/Rakefile
CHANGED
@@ -1,12 +1,6 @@
|
|
1
1
|
require 'rspec/core/rake_task'
|
2
2
|
RSpec::Core::RakeTask.new('spec')
|
3
3
|
|
4
|
-
task :publish_gem do
|
5
|
-
require 'gem_publisher'
|
6
|
-
gem = GemPublisher.publish_if_updated('puppet-syntax.gemspec', :rubygems)
|
7
|
-
puts "Published #{gem}" if gem
|
8
|
-
end
|
9
|
-
|
10
4
|
task default: [:spec]
|
11
5
|
begin
|
12
6
|
require 'github_changelog_generator/task'
|
@@ -23,12 +17,7 @@ rescue LoadError
|
|
23
17
|
end
|
24
18
|
|
25
19
|
begin
|
26
|
-
require 'rubocop/
|
20
|
+
require 'voxpupuli/rubocop/rake'
|
27
21
|
rescue LoadError
|
28
|
-
#
|
29
|
-
else
|
30
|
-
RuboCop::RakeTask.new(:rubocop) do |task|
|
31
|
-
# These make the rubocop experience maybe slightly less terrible
|
32
|
-
task.options = ['--display-cop-names', '--display-style-guide', '--extra-details']
|
33
|
-
end
|
22
|
+
# the voxpupuli-rubocop gem is optional
|
34
23
|
end
|
data/lib/puppet-syntax/hiera.rb
CHANGED
@@ -92,6 +92,11 @@ module PuppetSyntax
|
|
92
92
|
end
|
93
93
|
next unless yamldata
|
94
94
|
|
95
|
+
unless yamldata.is_a?(Hash)
|
96
|
+
errors << "ERROR: #{hiera_file} doesn't contain a valid Hash, datatype is #{yamldata.class}"
|
97
|
+
next
|
98
|
+
end
|
99
|
+
|
95
100
|
yamldata.each do |k, v|
|
96
101
|
if PuppetSyntax.check_hiera_keys
|
97
102
|
key_msg = check_hiera_key(k)
|
@@ -69,14 +69,10 @@ module PuppetSyntax
|
|
69
69
|
|
70
70
|
begin
|
71
71
|
template = File.read(filename)
|
72
|
-
erb =
|
73
|
-
ERB.new(template, trim_mode: '-')
|
74
|
-
else
|
75
|
-
ERB.new(template, trim_mode: '-')
|
76
|
-
end
|
72
|
+
erb = ERB.new(template, trim_mode: '-')
|
77
73
|
erb.filename = filename
|
78
74
|
erb.result
|
79
|
-
rescue NameError
|
75
|
+
rescue NameError
|
80
76
|
# This is normal because we don't have the variables that would
|
81
77
|
# ordinarily be bound by the parent Puppet manifest.
|
82
78
|
rescue TypeError
|
data/lib/puppet-syntax.rb
CHANGED
@@ -5,7 +5,12 @@ module PuppetSyntax
|
|
5
5
|
autoload :Manifests, 'puppet-syntax/manifests'
|
6
6
|
autoload :Templates, 'puppet-syntax/templates'
|
7
7
|
|
8
|
-
@exclude_paths = [
|
8
|
+
@exclude_paths = [
|
9
|
+
'spec/fixtures/**/*',
|
10
|
+
'pkg/**/*',
|
11
|
+
'vendor/**/*',
|
12
|
+
'.vendor/**/*',
|
13
|
+
]
|
9
14
|
@hieradata_paths = [
|
10
15
|
'**/data/**/*.*{yaml,yml}',
|
11
16
|
'hieradata/**/*.*{yaml,yml}',
|
@@ -19,8 +24,8 @@ module PuppetSyntax
|
|
19
24
|
'**/templates/**/*.epp',
|
20
25
|
]
|
21
26
|
@fail_on_deprecation_notices = true
|
22
|
-
@check_hiera_keys =
|
23
|
-
@check_hiera_data =
|
27
|
+
@check_hiera_keys = true
|
28
|
+
@check_hiera_data = true
|
24
29
|
|
25
30
|
class << self
|
26
31
|
attr_accessor :exclude_paths,
|
data/puppet-syntax.gemspec
CHANGED
@@ -18,11 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
|
19
19
|
spec.required_ruby_version = '>= 2.7'
|
20
20
|
|
21
|
-
spec.add_dependency '
|
21
|
+
spec.add_dependency 'openvox', '>= 7', '< 9'
|
22
22
|
spec.add_dependency 'rake', '~> 13.1'
|
23
23
|
|
24
|
-
spec.add_development_dependency '
|
25
|
-
spec.add_development_dependency 'rb-readline', '~> 0.5.5'
|
26
|
-
|
27
|
-
spec.add_development_dependency 'voxpupuli-rubocop', '~> 2.6.0'
|
24
|
+
spec.add_development_dependency 'voxpupuli-rubocop', '~> 3.1.0'
|
28
25
|
end
|
@@ -21,6 +21,14 @@ describe PuppetSyntax::Hiera do
|
|
21
21
|
expect(res.first).to match(expected)
|
22
22
|
end
|
23
23
|
|
24
|
+
it 'returns warnings on malformed keys' do
|
25
|
+
files = fixture_hiera('hiera_key_no_value.yaml')
|
26
|
+
expected = /ERROR: #{files[0]} doesn't contain a valid Hash, datatype is/
|
27
|
+
res = subject.check(files)
|
28
|
+
expect(res.size).to eq 1
|
29
|
+
expect(res.first).to match(expected)
|
30
|
+
end
|
31
|
+
|
24
32
|
context 'check_hiera_keys = true' do
|
25
33
|
before do
|
26
34
|
PuppetSyntax.check_hiera_keys = true
|
@@ -9,30 +9,45 @@ known_yaml_subdir = 'spec/fixtures/hiera/data/test/hiera_3.yaml'
|
|
9
9
|
known_eyaml_subdir = 'spec/fixtures/hiera/data/test/hiera_4.eyaml'
|
10
10
|
|
11
11
|
describe 'PuppetSyntax rake tasks' do
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
describe 'with default excludes' do
|
13
|
+
it 'filters directories' do
|
14
|
+
list = PuppetSyntax::RakeTask.new.filelist(['**/lib', known_pp])
|
15
|
+
expect(list.count).to eq 0
|
16
|
+
expect(list).not_to include(known_pp)
|
17
|
+
end
|
16
18
|
end
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
describe 'with custom excludes' do
|
21
|
+
before do
|
22
|
+
list = PuppetSyntax.exclude_paths
|
23
|
+
PuppetSyntax.exclude_paths = list - ['spec/fixtures/**/*']
|
24
|
+
end
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
it 'filters directories' do
|
27
|
+
list = PuppetSyntax::RakeTask.new.filelist(['**/lib', known_pp])
|
28
|
+
expect(list.count).to eq 1
|
29
|
+
expect(list).to include(known_pp)
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'generates FileList of manifests relative to Rakefile' do
|
33
|
+
list = PuppetSyntax::RakeTask.new.filelist_manifests
|
34
|
+
expect(list).to include(known_pp)
|
35
|
+
expect(list.count).to eq 9
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'generates FileList of templates relative to Rakefile' do
|
39
|
+
list = PuppetSyntax::RakeTask.new.filelist_templates
|
40
|
+
expect(list).to include(known_erb)
|
41
|
+
expect(list.count).to eq 9
|
42
|
+
end
|
29
43
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
44
|
+
it 'generates FileList of Hiera yaml files relative to Rakefile' do
|
45
|
+
list = PuppetSyntax::RakeTask.new.filelist_hiera_yaml
|
46
|
+
expect(list).to include(known_yaml)
|
47
|
+
expect(list).to include(known_eyaml)
|
48
|
+
expect(list).to include(known_yaml_subdir)
|
49
|
+
expect(list).to include(known_eyaml_subdir)
|
50
|
+
expect(list.count).to eq 4
|
51
|
+
end
|
37
52
|
end
|
38
53
|
end
|
@@ -3,11 +3,8 @@ require 'spec_helper'
|
|
3
3
|
describe PuppetSyntax::Templates do
|
4
4
|
let(:subject) { PuppetSyntax::Templates.new }
|
5
5
|
let(:conditional_warning_regex) do
|
6
|
-
|
7
|
-
|
8
|
-
else
|
9
|
-
/2: warning: found = in conditional/
|
10
|
-
end
|
6
|
+
# ruby 3.4 uses '= ,ruby 2.6 to 3.3 uses `=
|
7
|
+
/2: warning: found [`']= literal' in conditional/
|
11
8
|
end
|
12
9
|
|
13
10
|
it 'expects an array of files' do
|
@@ -35,7 +32,7 @@ describe PuppetSyntax::Templates do
|
|
35
32
|
res = subject.check(files)
|
36
33
|
|
37
34
|
expect(res[:errors].size).to eq(1)
|
38
|
-
expect(res[:errors][0]).to match(/2: syntax error
|
35
|
+
expect(res[:errors][0]).to match(/2: syntax error/)
|
39
36
|
end
|
40
37
|
|
41
38
|
it 'catches Ruby warnings' do
|
@@ -60,7 +57,7 @@ describe PuppetSyntax::Templates do
|
|
60
57
|
|
61
58
|
expect(res[:warnings].size).to eq(1)
|
62
59
|
expect(res[:errors].size).to eq(1)
|
63
|
-
expect(res[:errors][0]).to match(/2: syntax error
|
60
|
+
expect(res[:errors][0]).to match(/2: syntax error/)
|
64
61
|
expect(res[:warnings][0]).to match(conditional_warning_regex)
|
65
62
|
end
|
66
63
|
|
metadata
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-syntax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vox Pupuli
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
13
|
+
name: openvox
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
16
15
|
requirements:
|
17
16
|
- - ">="
|
@@ -44,48 +43,20 @@ dependencies:
|
|
44
43
|
- - "~>"
|
45
44
|
- !ruby/object:Gem::Version
|
46
45
|
version: '13.1'
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: pry
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 0.14.2
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: 0.14.2
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: rb-readline
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - "~>"
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: 0.5.5
|
68
|
-
type: :development
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - "~>"
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: 0.5.5
|
75
46
|
- !ruby/object:Gem::Dependency
|
76
47
|
name: voxpupuli-rubocop
|
77
48
|
requirement: !ruby/object:Gem::Requirement
|
78
49
|
requirements:
|
79
50
|
- - "~>"
|
80
51
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
52
|
+
version: 3.1.0
|
82
53
|
type: :development
|
83
54
|
prerelease: false
|
84
55
|
version_requirements: !ruby/object:Gem::Requirement
|
85
56
|
requirements:
|
86
57
|
- - "~>"
|
87
58
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
59
|
+
version: 3.1.0
|
89
60
|
description: Syntax checks for Puppet manifests and templates
|
90
61
|
email:
|
91
62
|
- voxpupuli@groups.io
|
@@ -94,6 +65,7 @@ extensions: []
|
|
94
65
|
extra_rdoc_files: []
|
95
66
|
files:
|
96
67
|
- ".github/dependabot.yml"
|
68
|
+
- ".github/release.yml"
|
97
69
|
- ".github/workflows/release.yml"
|
98
70
|
- ".github/workflows/test.yml"
|
99
71
|
- ".gitignore"
|
@@ -121,6 +93,7 @@ files:
|
|
121
93
|
- spec/fixtures/hiera/hiera_badkey.yaml
|
122
94
|
- spec/fixtures/hiera/hiera_good.yaml
|
123
95
|
- spec/fixtures/hiera/hiera_key_empty.yaml
|
96
|
+
- spec/fixtures/hiera/hiera_key_no_value.yaml
|
124
97
|
- spec/fixtures/test_module/manifests/deprecation_notice.pp
|
125
98
|
- spec/fixtures/test_module/manifests/fail_error.pp
|
126
99
|
- spec/fixtures/test_module/manifests/fail_warning.pp
|
@@ -150,7 +123,6 @@ homepage: https://github.com/voxpupuli/puppet-syntax
|
|
150
123
|
licenses:
|
151
124
|
- MIT
|
152
125
|
metadata: {}
|
153
|
-
post_install_message:
|
154
126
|
rdoc_options: []
|
155
127
|
require_paths:
|
156
128
|
- lib
|
@@ -165,8 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
137
|
- !ruby/object:Gem::Version
|
166
138
|
version: '0'
|
167
139
|
requirements: []
|
168
|
-
rubygems_version: 3.
|
169
|
-
signing_key:
|
140
|
+
rubygems_version: 3.6.7
|
170
141
|
specification_version: 4
|
171
142
|
summary: Syntax checks for Puppet manifests, templates, and Hiera YAML
|
172
143
|
test_files: []
|