Created
May 29, 2018 18:58
-
-
Save rnelson0/61c2940f8e7dc20eb4cbaedda38d5613 to your computer and use it in GitHub Desktop.
Naive `pdk convert` attempt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[rnelson0@build03 domain_join:pdk±]$ git diff | |
diff --git a/.gitignore b/.gitignore | |
index 5caea85..49bc2a4 100644 | |
--- a/.gitignore | |
+++ b/.gitignore | |
@@ -1,13 +1,23 @@ | |
-.*.sw? | |
-/pkg | |
-/spec/fixtures/manifests | |
-/spec/fixtures/modules | |
-/.rspec_system | |
-/.vagrant | |
-/.bundle | |
-/vendor | |
-/Gemfile.lock | |
-/junit | |
-/log | |
+.*.sw[op] | |
+.metadata | |
.yardoc | |
-coverage | |
+.yardwarns | |
+*.iml | |
+/.bundle/ | |
+/.idea/ | |
+/.vagrant/ | |
+/coverage/ | |
+/bin/ | |
+/doc/ | |
+/Gemfile.local | |
+/Gemfile.lock | |
+/junit/ | |
+/log/ | |
+/pkg/ | |
+/spec/fixtures/manifests/ | |
+/spec/fixtures/modules/ | |
+/tmp/ | |
+/vendor/ | |
+/convert_report.txt | |
+/update_report.txt | |
+.DS_Store | |
diff --git a/.rspec b/.rspec | |
index 8c18f1a..16f9cdb 100644 | |
--- a/.rspec | |
+++ b/.rspec | |
@@ -1,2 +1,2 @@ | |
---format documentation | |
--color | |
+--format documentation | |
diff --git a/.rubocop.yml b/.rubocop.yml | |
index e4d810a..40a58e0 100644 | |
--- a/.rubocop.yml | |
+++ b/.rubocop.yml | |
@@ -1,480 +1,107 @@ | |
+--- | |
+require: rubocop-rspec | |
AllCops: | |
+ DisplayCopNames: true | |
+ TargetRubyVersion: '2.1' | |
+ Include: | |
+ - "./**/*.rb" | |
Exclude: | |
- # Ignore HTML related things | |
- - '**/*.erb' | |
- # Ignore vendored gems | |
- - 'vendor/**/*' | |
- # Ignore code from test fixtures | |
- - 'spec/fixtures/**/*' | |
- | |
-Lint/ConditionPosition: | |
- Enabled: true | |
- | |
-Lint/ElseLayout: | |
- Enabled: true | |
- | |
-Lint/UnreachableCode: | |
- Enabled: true | |
- | |
-Lint/UselessComparison: | |
- Enabled: true | |
- | |
-Lint/EnsureReturn: | |
- Enabled: true | |
- | |
-Lint/HandleExceptions: | |
- Enabled: true | |
- | |
-Lint/LiteralInCondition: | |
- Enabled: true | |
- | |
-Lint/ShadowingOuterLocalVariable: | |
- Enabled: true | |
- | |
-Lint/LiteralInInterpolation: | |
- Enabled: true | |
- | |
-Style/RedundantReturn: | |
- Enabled: true | |
- | |
-Lint/AmbiguousOperator: | |
- Enabled: true | |
- | |
-Lint/AssignmentInCondition: | |
- Enabled: true | |
- | |
-Style/SpaceBeforeComment: | |
- Enabled: true | |
- | |
-# DISABLED - not useful | |
-Style/HashSyntax: | |
- Enabled: false | |
- | |
-# USES: as shortcut for non nil&valid checking a = x() and a.empty? | |
-# DISABLED - not useful | |
-Style/AndOr: | |
- Enabled: false | |
- | |
-# DISABLED - not useful | |
-Style/RedundantSelf: | |
- Enabled: false | |
- | |
-# DISABLED - not useful | |
-Metrics/MethodLength: | |
- Enabled: false | |
- | |
-# DISABLED - not useful | |
-Style/WhileUntilModifier: | |
- Enabled: false | |
- | |
-# DISABLED - the offender is just haskell envy | |
-Lint/AmbiguousRegexpLiteral: | |
- Enabled: false | |
- | |
-# DISABLED | |
-Lint/Eval: | |
- Enabled: false | |
- | |
-# DISABLED | |
-Lint/BlockAlignment: | |
- Enabled: false | |
- | |
-# DISABLED | |
-Lint/DefEndAlignment: | |
- Enabled: false | |
- | |
-# DISABLED | |
-Lint/EndAlignment: | |
- Enabled: false | |
- | |
-# DISABLED | |
-Lint/DeprecatedClassMethods: | |
- Enabled: false | |
- | |
-# DISABLED | |
-Lint/Loop: | |
- Enabled: false | |
- | |
-# DISABLED | |
-Lint/ParenthesesAsGroupedExpression: | |
- Enabled: false | |
- | |
-Lint/RescueException: | |
- Enabled: false | |
- | |
-Lint/StringConversionInInterpolation: | |
- Enabled: false | |
- | |
-Lint/UnusedBlockArgument: | |
- Enabled: false | |
- | |
-Lint/UnusedMethodArgument: | |
- Enabled: false | |
- | |
-Lint/UselessAccessModifier: | |
+ - bin/* | |
+ - ".vendor/**/*" | |
+ - Gemfile | |
+ - Rakefile | |
+ - pkg/**/* | |
+ - spec/fixtures/**/* | |
+ - vendor/**/* | |
+Metrics/LineLength: | |
+ Description: People have wide screens, use them. | |
+ Max: 200 | |
+RSpec/BeforeAfterAll: | |
+ Description: Beware of using after(:all) as it may cause state to leak between tests. | |
+ A necessary evil in acceptance testing. | |
+ Exclude: | |
+ - spec/acceptance/**/*.rb | |
+RSpec/HookArgument: | |
+ Description: Prefer explicit :each argument, matching existing module's style | |
+ EnforcedStyle: each | |
+Style/BlockDelimiters: | |
+ Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to | |
+ be consistent then. | |
+ EnforcedStyle: braces_for_chaining | |
+Style/ClassAndModuleChildren: | |
+ Description: Compact style reduces the required amount of indentation. | |
+ EnforcedStyle: compact | |
+Style/EmptyElse: | |
+ Description: Enforce against empty else clauses, but allow `nil` for clarity. | |
+ EnforcedStyle: empty | |
+Style/FormatString: | |
+ Description: Following the main puppet project's style, prefer the % format format. | |
+ EnforcedStyle: percent | |
+Style/FormatStringToken: | |
+ Description: Following the main puppet project's style, prefer the simpler template | |
+ tokens over annotated ones. | |
+ EnforcedStyle: template | |
+Style/Lambda: | |
+ Description: Prefer the keyword for easier discoverability. | |
+ EnforcedStyle: literal | |
+Style/RegexpLiteral: | |
+ Description: Community preference. See https://github.com/voxpupuli/modulesync_config/issues/168 | |
+ EnforcedStyle: percent_r | |
+Style/TernaryParentheses: | |
+ Description: Checks for use of parentheses around ternary conditions. Enforce parentheses | |
+ on complex expressions for better readability, but seriously consider breaking | |
+ it up. | |
+ EnforcedStyle: require_parentheses_when_complex | |
+Style/TrailingCommaInArguments: | |
+ Description: Prefer always trailing comma on multiline argument lists. This makes | |
+ diffs, and re-ordering nicer. | |
+ EnforcedStyleForMultiline: comma | |
+Style/TrailingCommaInLiteral: | |
+ Description: Prefer always trailing comma on multiline literals. This makes diffs, | |
+ and re-ordering nicer. | |
+ EnforcedStyleForMultiline: comma | |
+Style/SymbolArray: | |
+ Description: Using percent style obscures symbolic intent of array's contents. | |
+ EnforcedStyle: brackets | |
+RSpec/MessageSpies: | |
+ EnforcedStyle: receive | |
+Style/CollectionMethods: | |
Enabled: true | |
- | |
-Lint/UselessAssignment: | |
+Style/MethodCalledOnDoEndBlock: | |
Enabled: true | |
- | |
-Lint/Void: | |
+Style/StringMethods: | |
Enabled: true | |
- | |
-Style/AccessModifierIndentation: | |
+Layout/EndOfLine: | |
Enabled: false | |
- | |
-Style/AccessorMethodName: | |
+Metrics/AbcSize: | |
Enabled: false | |
- | |
-Style/Alias: | |
+Metrics/BlockLength: | |
Enabled: false | |
- | |
-Style/AlignArray: | |
- Enabled: false | |
- | |
-Style/AlignHash: | |
- Enabled: false | |
- | |
-Style/AlignParameters: | |
- Enabled: false | |
- | |
-Metrics/BlockNesting: | |
- Enabled: false | |
- | |
-Style/AsciiComments: | |
- Enabled: false | |
- | |
-Style/Attr: | |
- Enabled: false | |
- | |
-Style/BracesAroundHashParameters: | |
- Enabled: false | |
- | |
-Style/CaseEquality: | |
- Enabled: false | |
- | |
-Style/CaseIndentation: | |
- Enabled: false | |
- | |
-Style/CharacterLiteral: | |
- Enabled: false | |
- | |
-Style/ClassAndModuleCamelCase: | |
- Enabled: false | |
- | |
-Style/ClassAndModuleChildren: | |
- Enabled: false | |
- | |
-Style/ClassCheck: | |
- Enabled: false | |
- | |
Metrics/ClassLength: | |
Enabled: false | |
- | |
-Style/ClassMethods: | |
- Enabled: false | |
- | |
-Style/ClassVars: | |
- Enabled: false | |
- | |
-Style/WhenThen: | |
- Enabled: false | |
- | |
-# DISABLED - not useful | |
-Style/WordArray: | |
- Enabled: false | |
- | |
-Style/UnneededPercentQ: | |
- Enabled: false | |
- | |
-Style/Tab: | |
- Enabled: false | |
- | |
-Style/SpaceBeforeSemicolon: | |
- Enabled: false | |
- | |
-Style/TrailingBlankLines: | |
- Enabled: false | |
- | |
-Style/SpaceInsideBlockBraces: | |
- Enabled: false | |
- | |
-Style/SpaceInsideBrackets: | |
- Enabled: false | |
- | |
-Style/SpaceInsideHashLiteralBraces: | |
- Enabled: false | |
- | |
-Style/SpaceInsideParens: | |
- Enabled: false | |
- | |
-Style/LeadingCommentSpace: | |
- Enabled: false | |
- | |
-Style/SingleSpaceBeforeFirstArg: | |
- Enabled: false | |
- | |
-Style/SpaceAfterColon: | |
- Enabled: false | |
- | |
-Style/SpaceAfterComma: | |
- Enabled: false | |
- | |
-Style/SpaceAfterControlKeyword: | |
- Enabled: false | |
- | |
-Style/SpaceAfterMethodName: | |
- Enabled: false | |
- | |
-Style/SpaceAfterNot: | |
- Enabled: false | |
- | |
-Style/SpaceAfterSemicolon: | |
- Enabled: false | |
- | |
-Style/SpaceAroundEqualsInParameterDefault: | |
- Enabled: false | |
- | |
-Style/SpaceAroundOperators: | |
- Enabled: false | |
- | |
-Style/SpaceBeforeBlockBraces: | |
- Enabled: false | |
- | |
-Style/SpaceBeforeComma: | |
- Enabled: false | |
- | |
-Style/CollectionMethods: | |
- Enabled: false | |
- | |
-Style/CommentIndentation: | |
- Enabled: false | |
- | |
-Style/ColonMethodCall: | |
- Enabled: false | |
- | |
-Style/CommentAnnotation: | |
- Enabled: false | |
- | |
Metrics/CyclomaticComplexity: | |
Enabled: false | |
- | |
-Style/ConstantName: | |
- Enabled: false | |
- | |
-Style/Documentation: | |
- Enabled: false | |
- | |
-Style/DefWithParentheses: | |
- Enabled: false | |
- | |
-Style/DeprecatedHashMethods: | |
- Enabled: false | |
- | |
-Style/DotPosition: | |
- Enabled: false | |
- | |
-# DISABLED - used for converting to bool | |
-Style/DoubleNegation: | |
- Enabled: false | |
- | |
-Style/EachWithObject: | |
- Enabled: false | |
- | |
-Style/EmptyLineBetweenDefs: | |
- Enabled: false | |
- | |
-Style/IndentArray: | |
- Enabled: false | |
- | |
-Style/IndentHash: | |
- Enabled: false | |
- | |
-Style/IndentationConsistency: | |
- Enabled: false | |
- | |
-Style/IndentationWidth: | |
- Enabled: false | |
- | |
-Style/EmptyLines: | |
- Enabled: false | |
- | |
-Style/EmptyLinesAroundAccessModifier: | |
- Enabled: false | |
- | |
-Style/EmptyLiteral: | |
+Metrics/MethodLength: | |
Enabled: false | |
- | |
-Metrics/LineLength: | |
+Metrics/ModuleLength: | |
Enabled: false | |
- | |
-Style/MethodCallParentheses: | |
+Metrics/ParameterLists: | |
Enabled: false | |
- | |
-Style/MethodDefParentheses: | |
+Metrics/PerceivedComplexity: | |
Enabled: false | |
- | |
-Style/LineEndConcatenation: | |
+RSpec/DescribeClass: | |
Enabled: false | |
- | |
-Style/TrailingWhitespace: | |
+RSpec/ExampleLength: | |
Enabled: false | |
- | |
-Style/StringLiterals: | |
+RSpec/MessageExpectation: | |
Enabled: false | |
- | |
-Style/TrailingComma: | |
+RSpec/MultipleExpectations: | |
Enabled: false | |
- | |
-Style/GlobalVars: | |
+RSpec/NestedGroups: | |
Enabled: false | |
- | |
-Style/GuardClause: | |
+Style/AsciiComments: | |
Enabled: false | |
- | |
Style/IfUnlessModifier: | |
Enabled: false | |
- | |
-Style/MultilineIfThen: | |
- Enabled: false | |
- | |
-Style/NegatedIf: | |
- Enabled: false | |
- | |
-Style/NegatedWhile: | |
- Enabled: false | |
- | |
-Style/Next: | |
- Enabled: false | |
- | |
-Style/SingleLineBlockParams: | |
- Enabled: false | |
- | |
-Style/SingleLineMethods: | |
- Enabled: false | |
- | |
-Style/SpecialGlobalVars: | |
- Enabled: false | |
- | |
-Style/TrivialAccessors: | |
- Enabled: false | |
- | |
-Style/UnlessElse: | |
- Enabled: false | |
- | |
-Style/VariableInterpolation: | |
- Enabled: false | |
- | |
-Style/VariableName: | |
- Enabled: false | |
- | |
-Style/WhileUntilDo: | |
- Enabled: false | |
- | |
-Style/EvenOdd: | |
- Enabled: false | |
- | |
-Style/FileName: | |
- Enabled: false | |
- | |
-Style/For: | |
- Enabled: false | |
- | |
-Style/Lambda: | |
- Enabled: false | |
- | |
-Style/MethodName: | |
- Enabled: false | |
- | |
-Style/MultilineTernaryOperator: | |
- Enabled: false | |
- | |
-Style/NestedTernaryOperator: | |
- Enabled: false | |
- | |
-Style/NilComparison: | |
- Enabled: false | |
- | |
-Style/FormatString: | |
- Enabled: false | |
- | |
-Style/MultilineBlockChain: | |
- Enabled: false | |
- | |
-Style/Semicolon: | |
- Enabled: false | |
- | |
-Style/SignalException: | |
- Enabled: false | |
- | |
-Style/NonNilCheck: | |
- Enabled: false | |
- | |
-Style/Not: | |
- Enabled: false | |
- | |
-Style/NumericLiterals: | |
- Enabled: false | |
- | |
-Style/OneLineConditional: | |
- Enabled: false | |
- | |
-Style/OpMethod: | |
- Enabled: false | |
- | |
-Style/ParenthesesAroundCondition: | |
- Enabled: false | |
- | |
-Style/PercentLiteralDelimiters: | |
- Enabled: false | |
- | |
-Style/PerlBackrefs: | |
- Enabled: false | |
- | |
-Style/PredicateName: | |
- Enabled: false | |
- | |
-Style/RedundantException: | |
- Enabled: false | |
- | |
-Style/SelfAssignment: | |
- Enabled: false | |
- | |
-Style/Proc: | |
- Enabled: false | |
- | |
-Style/RaiseArgs: | |
- Enabled: false | |
- | |
-Style/RedundantBegin: | |
- Enabled: false | |
- | |
-Style/RescueModifier: | |
- Enabled: false | |
- | |
-Style/RegexpLiteral: | |
- Enabled: false | |
- | |
-Lint/UnderscorePrefixedVariableName: | |
- Enabled: false | |
- | |
-Metrics/ParameterLists: | |
- Enabled: false | |
- | |
-Lint/RequireParentheses: | |
- Enabled: false | |
- | |
-Lint/SpaceBeforeFirstArg: | |
- Enabled: false | |
- | |
-Style/ModuleFunction: | |
- Enabled: false | |
- | |
-Lint/Debugger: | |
- Enabled: false | |
- | |
-Style/IfWithSemicolon: | |
- Enabled: false | |
- | |
-Style/Encoding: | |
+Style/SymbolProc: | |
Enabled: false | |
diff --git a/.travis.yml b/.travis.yml | |
index 30b04c7..0f10309 100644 | |
--- a/.travis.yml | |
+++ b/.travis.yml | |
@@ -1,20 +1,50 @@ | |
--- | |
-language: ruby | |
sudo: false | |
+dist: trusty | |
+language: ruby | |
cache: bundler | |
-notifications: | |
- email: | |
- on_failure: always | |
-branches: | |
- only: | |
- - master | |
-bundler_args: --without development system_tests | |
-before_install: rm Gemfile.lock || true | |
-script: bundle exec rake test | |
+before_install: | |
+ - bundle -v | |
+ - rm -f Gemfile.lock | |
+ - gem update --system | |
+ - gem update bundler | |
+ - gem --version | |
+ - bundle -v | |
+script: | |
+ - 'bundle exec rake $CHECK' | |
+bundler_args: --without system_tests | |
+rvm: | |
+ - 2.4.1 | |
+env: | |
+ - PUPPET_GEM_VERSION="~> 5.0" CHECK=spec | |
matrix: | |
fast_finish: true | |
include: | |
- - rvm: 2.3.1 | |
- env: PUPPET_GEM_VERSION="~> 4.0" STRICT_VARIABLES=yes | |
- - rvm: 2.4.1 | |
- env: PUPPET_GEM_VERSION="~> 5.0" STRICT_VARIABLES=yes | |
+ - | |
+ env: CHECK=rubocop | |
+ - | |
+ env: CHECK="syntax lint" | |
+ - | |
+ env: CHECK=metadata_lint | |
+ - | |
+ env: CHECK=release_checks | |
+ - | |
+ env: CHECK=spec | |
+ - | |
+ env: PUPPET_GEM_VERSION="~> 4.0" CHECK=spec | |
+ rvm: 2.1.9 | |
+branches: | |
+ only: | |
+ - master | |
+ - /^v\d/ | |
+notifications: | |
+ email: false | |
+deploy: | |
+ provider: puppetforge | |
+ user: puppet | |
+ password: | |
+ secure: "" | |
+ on: | |
+ tags: true | |
+ all_branches: true | |
+ condition: "$DEPLOY_TO_FORGE = yes" | |
diff --git a/Gemfile b/Gemfile | |
index c9721aa..ce6db39 100644 | |
--- a/Gemfile | |
+++ b/Gemfile | |
@@ -1,40 +1,79 @@ | |
-source "https://rubygems.org" | |
- | |
-group :test do | |
- gem "rake" | |
- gem "puppet", ENV['PUPPET_GEM_VERSION'] || '~> 4.0' | |
- gem "rspec" | |
- gem "rspec-puppet" | |
- gem "puppetlabs_spec_helper" | |
- gem "metadata-json-lint" | |
- gem "rspec-puppet-facts" | |
- gem 'simplecov' | |
- gem 'coveralls' | |
- gem "parallel_tests" | |
- | |
- # Common puppet-lint plugins | |
- gem "puppet-lint-absolute_classname-check" | |
- gem "puppet-lint-leading_zero-check" | |
- gem "puppet-lint-trailing_comma-check" | |
- gem "puppet-lint-version_comparison-check" | |
- gem "puppet-lint-classes_and_types_beginning_with_digits-check" | |
- gem "puppet-lint-unquoted_string-check" | |
- | |
- gem "json_pure", '< 2.0.1' | |
- | |
- gem "puppet-blacksmith" | |
- | |
- # Changelog generation gems | |
- gem 'github_changelog_generator', '~> 1.13.0' if RUBY_VERSION < '2.2.2' | |
- gem 'github_changelog_generator' if RUBY_VERSION >= '2.2.2' | |
- gem 'rack', '~> 1.0' if RUBY_VERSION < '2.2.2' | |
+source ENV['GEM_SOURCE'] || 'https://rubygems.org' | |
+ | |
+def location_for(place_or_version, fake_version = nil) | |
+ if place_or_version =~ %r{\A(git[:@][^#]*)#(.*)} | |
+ [fake_version, { git: Regexp.last_match(1), branch: Regexp.last_match(2), require: false }].compact | |
+ elsif place_or_version =~ %r{\Afile:\/\/(.*)} | |
+ ['>= 0', { path: File.expand_path(Regexp.last_match(1)), require: false }] | |
+ else | |
+ [place_or_version, { require: false }] | |
+ end | |
+end | |
+ | |
+def gem_type(place_or_version) | |
+ if place_or_version =~ %r{\Agit[:@]} | |
+ :git | |
+ elsif !place_or_version.nil? && place_or_version.start_with?('file:') | |
+ :file | |
+ else | |
+ :gem | |
+ end | |
end | |
+ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments | |
+minor_version = ruby_version_segments[0..1].join('.') | |
+ | |
group :development do | |
+ gem "fast_gettext", '1.1.0', require: false if Gem::Version.new(RUBY_VERSION.dup) < | |
+ gem "fast_gettext", require: false if Gem::Version.new(RUBY_VERSION.dup) > | |
+ gem "json_pure", '<= 2.0.1', require: false if Gem::Version.new(RUBY_VERSION.dup) < | |
+ gem "json", '= 1.8.1', require: false if Gem::Version.new(RUBY_VERSION.dup) = | |
+ gem "json", '<= 2.0.4', require: false if Gem::Version.new(RUBY_VERSION.dup) = | |
+ gem "puppet-module-posix-default-r#{minor_version}", require: false, platforms: [:ruby] | |
+ gem "puppet-module-posix-dev-r#{minor_version}", require: false, platforms: [:ruby] | |
+ gem "puppet-module-win-default-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw | |
+ gem "puppet-module-win-dev-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw | |
+ gem "puppet-blacksmith", '~> 3.4', require: false, platforms: [:ruby] | |
+end | |
+ | |
+puppet_version = ENV['PUPPET_GEM_VERSION'] | |
+puppet_type = gem_type(puppet_version) | |
+facter_version = ENV['FACTER_GEM_VERSION'] | |
+hiera_version = ENV['HIERA_GEM_VERSION'] | |
+ | |
+gems = {} | |
+ | |
+gems['puppet'] = location_for(puppet_version) | |
+ | |
+# If facter or hiera versions have been specified via the environment | |
+# variables | |
+ | |
+gems['facter'] = location_for(facter_version) if facter_version | |
+gems['hiera'] = location_for(hiera_version) if hiera_version | |
+ | |
+if Gem.win_platform? && puppet_version =~ %r{^(file:///|git://)} | |
+ # If we're using a Puppet gem on Windows which handles its own win32-xxx gem | |
+ # dependencies (>= 3.5.0), set the maximum versions (see PUP-6445). | |
+ gems['win32-dir'] = ['<= 0.4.9', require: false] | |
+ gems['win32-eventlog'] = ['<= 0.6.5', require: false] | |
+ gems['win32-process'] = ['<= 0.7.5', require: false] | |
+ gems['win32-security'] = ['<= 0.2.5', require: false] | |
+ gems['win32-service'] = ['0.8.8', require: false] | |
end | |
-group :system_tests do | |
- gem "beaker" | |
- gem "beaker-rspec" | |
- gem "beaker-puppet_install_helper" | |
+gems.each do |gem_name, gem_params| | |
+ gem gem_name, *gem_params | |
+end | |
+ | |
+# Evaluate Gemfile.local and ~/.gemfile if they exist | |
+extra_gemfiles = [ | |
+ "#{__FILE__}.local", | |
+ File.join(Dir.home, '.gemfile'), | |
+] | |
+ | |
+extra_gemfiles.each do |gemfile| | |
+ if File.file?(gemfile) && File.readable?(gemfile) | |
+ eval(File.read(gemfile), binding) | |
+ end | |
end | |
+# vim: syntax=ruby | |
diff --git a/Rakefile b/Rakefile | |
index 218bdc9..fb58663 100644 | |
--- a/Rakefile | |
+++ b/Rakefile | |
@@ -1,74 +1,5 @@ | |
-require 'rubygems' | |
-require 'bundler/setup' | |
- | |
require 'puppetlabs_spec_helper/rake_tasks' | |
-require 'puppet/version' | |
-require 'puppet-lint/tasks/puppet-lint' | |
require 'puppet-syntax/tasks/puppet-syntax' | |
-require 'metadata-json-lint/rake_task' | |
-require 'parallel_tests' | |
-require 'parallel_tests/cli' | |
-require 'github_changelog_generator/task' | |
- | |
-# These gems aren't always present, for instance | |
-# on Travis with --without development | |
-begin | |
- require 'puppet_blacksmith/rake_tasks' | |
-rescue LoadError | |
-end | |
- | |
-exclude_paths = [ | |
- "bundle/**/*", | |
- "pkg/**/*", | |
- "vendor/**/*", | |
- "spec/**/*", | |
-] | |
- | |
-Rake::Task[:lint].clear | |
- | |
-PuppetLint.configuration.relative = true | |
-PuppetLint.configuration.disable_arrow_alignment | |
-PuppetLint.configuration.disable_80chars | |
-PuppetLint.configuration.disable_class_inherits_from_params_class | |
-PuppetLint.configuration.disable_class_parameter_defaults | |
-PuppetLint.configuration.disable_documentation | |
-PuppetLint.configuration.disable_single_quote_string_with_variables | |
-PuppetLint.configuration.fail_on_warnings = true | |
- | |
-PuppetLint::RakeTask.new :lint do |config| | |
- config.ignore_paths = exclude_paths | |
-end | |
- | |
-PuppetSyntax.exclude_paths = exclude_paths | |
- | |
-desc "Run acceptance tests" | |
-RSpec::Core::RakeTask.new(:acceptance) do |t| | |
- t.pattern = 'spec/acceptance' | |
-end | |
- | |
-desc "Populate CONTRIBUTORS file" | |
-task :contributors do | |
- system("git log --format='%aN' | sort -u > CONTRIBUTORS") | |
-end | |
- | |
-desc "Parallel spec tests" | |
-task :parallel_spec do | |
- Rake::Task[:spec_prep].invoke | |
- ParallelTests::CLI.new.run('--type test -t rspec spec/classes spec/defines spec/unit spec/functions'.split) | |
- Rake::Task[:spec_clean].invoke | |
-end | |
- | |
-desc "Run syntax, lint, and spec tests." | |
-task :test => [ | |
- :metadata_lint, | |
- :syntax, | |
- :lint, | |
- :spec, | |
-] | |
+require 'puppet_blacksmith/rake_tasks' if Bundler.rubygems.find_name('puppet-blacksmith').any? | |
-GitHubChangelogGenerator::RakeTask.new :changelog do |config| | |
- version = (Blacksmith::Modulefile.new).version | |
- config.future_release = "v#{version}" | |
- config.header = "# Change log\n\nAll notable changes to this project will be documented in this file.\nEach | |
- config.exclude_labels = %w{duplicate question invalid wontfix modulesync} | |
-end | |
+PuppetLint.configuration.send('relative') | |
diff --git a/metadata.json b/metadata.json | |
index 7730b90..381aff7 100644 | |
--- a/metadata.json | |
+++ b/metadata.json | |
@@ -27,5 +27,8 @@ | |
"name": "puppet", | |
"version_requirement": ">=4.0.0" | |
} | |
- ] | |
+ ], | |
+ "pdk-version": "1.5.0", | |
+ "template-url": "file:///opt/puppetlabs/pdk/share/cache/pdk-templates.git", | |
+ "template-ref": "1.5.0-0-gd1b3eca" | |
} | |
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb | |
index 67a2559..e117192 100644 | |
--- a/spec/spec_helper.rb | |
+++ b/spec/spec_helper.rb | |
@@ -1,20 +1,36 @@ | |
+ | |
require 'puppetlabs_spec_helper/module_spec_helper' | |
require 'rspec-puppet-facts' | |
+begin | |
+ require 'spec_helper_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_local.rb')) | |
+rescue LoadError => loaderror | |
+ warn "Could not require spec_helper_local: #{loaderror.message}" | |
+end | |
+ | |
include RspecPuppetFacts | |
-require 'simplecov' | |
-require 'coveralls' | |
+default_facts = { | |
+ puppetversion: Puppet.version, | |
+ facterversion: Facter.version, | |
+} | |
+ | |
+default_facts_path = File.expand_path(File.join(File.dirname(__FILE__), 'default_facts.yml')) | |
+default_module_facts_path = File.expand_path(File.join(File.dirname(__FILE__), 'default_module_facts.yml')) | |
+ | |
+if File.exist?(default_facts_path) && File.readable?(default_facts_path) | |
+ default_facts.merge!(YAML.safe_load(File.read(default_facts_path))) | |
+end | |
-SimpleCov.start do | |
- add_filter '/spec' | |
- add_filter '/vendor' | |
- formatter SimpleCov::Formatter::MultiFormatter::new([ | |
- SimpleCov::Formatter::HTMLFormatter, | |
- Coveralls::SimpleCov::Formatter | |
- ]) | |
+if File.exist?(default_module_facts_path) && File.readable?(default_module_facts_path) | |
+ default_facts.merge!(YAML.safe_load(File.read(default_module_facts_path))) | |
end | |
RSpec.configure do |c| | |
- c.hiera_config = File.expand_path(File.join(__FILE__, '../fixtures/hiera.yaml')) | |
+ c.default_facts = default_facts | |
+ c.before :each do | |
+ # set to strictest setting for testing | |
+ # by default Puppet runs at warning level | |
+ Puppet.settings[:strict] = :warning | |
+ end | |
end | |
(END) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment