Class: PuppetLint::RakeTask
- Inherits:
-
Rake::TaskLib
- Object
- Rake::TaskLib
- PuppetLint::RakeTask
- Includes:
- Rake::DSL
- Defined in:
- lib/puppet-lint/tasks/puppet-lint.rb
Overview
Public: A Rake task that can be loaded and used with everything you need.
Examples
require 'puppet-lint'
PuppetLint::RakeTask.new
Constant Summary collapse
- DEFAULT_PATTERN =
'**/*.pp'.freeze
Instance Attribute Summary collapse
-
#disable_checks ⇒ Object
Returns the value of attribute disable_checks.
-
#error_level ⇒ Object
Returns the value of attribute error_level.
-
#fail_on_warnings ⇒ Object
Returns the value of attribute fail_on_warnings.
-
#fix ⇒ Object
Returns the value of attribute fix.
-
#ignore_paths ⇒ Object
Returns the value of attribute ignore_paths.
-
#log_format ⇒ Object
Returns the value of attribute log_format.
-
#name ⇒ Object
Returns the value of attribute name.
-
#only_checks ⇒ Object
Returns the value of attribute only_checks.
-
#pattern ⇒ Object
Returns the value of attribute pattern.
-
#relative ⇒ Object
Returns the value of attribute relative.
-
#show_ignored ⇒ Object
Returns the value of attribute show_ignored.
-
#with_context ⇒ Object
Returns the value of attribute with_context.
-
#with_filename ⇒ Object
Returns the value of attribute with_filename.
Instance Method Summary collapse
- #define(args) {|[self, args].slice(0, task_block.arity)| ... } ⇒ Object
-
#initialize(*args, &task_block) ⇒ RakeTask
constructor
Public: Initialise a new PuppetLint::RakeTask.
Constructor Details
#initialize(*args, &task_block) ⇒ RakeTask
Public: Initialise a new PuppetLint::RakeTask.
args - Not used.
Example
PuppetLint::RakeTask.new
rubocop:disable Lint/MissingSuper
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 30 def initialize(*args, &task_block) @name = args.shift || :lint @pattern = DEFAULT_PATTERN @with_filename = true @disable_checks = [] @only_checks = [] @ignore_paths = [] define(args, &task_block) end |
Instance Attribute Details
#disable_checks ⇒ Object
Returns the value of attribute disable_checks.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def disable_checks @disable_checks end |
#error_level ⇒ Object
Returns the value of attribute error_level.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def error_level @error_level end |
#fail_on_warnings ⇒ Object
Returns the value of attribute fail_on_warnings.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def fail_on_warnings @fail_on_warnings end |
#fix ⇒ Object
Returns the value of attribute fix.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def fix @fix end |
#ignore_paths ⇒ Object
Returns the value of attribute ignore_paths.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def ignore_paths @ignore_paths end |
#log_format ⇒ Object
Returns the value of attribute log_format.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def log_format @log_format end |
#name ⇒ Object
Returns the value of attribute name.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def name @name end |
#only_checks ⇒ Object
Returns the value of attribute only_checks.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def only_checks @only_checks end |
#pattern ⇒ Object
Returns the value of attribute pattern.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def pattern @pattern end |
#relative ⇒ Object
Returns the value of attribute relative.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def relative @relative end |
#show_ignored ⇒ Object
Returns the value of attribute show_ignored.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def show_ignored @show_ignored end |
#with_context ⇒ Object
Returns the value of attribute with_context.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def with_context @with_context end |
#with_filename ⇒ Object
Returns the value of attribute with_filename.
20 21 22 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 20 def with_filename @with_filename end |
Instance Method Details
#define(args) {|[self, args].slice(0, task_block.arity)| ... } ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/puppet-lint/tasks/puppet-lint.rb', line 41 def define(args, &task_block) desc 'Run puppet-lint' yield(*[self, args].slice(0, task_block.arity)) if task_block # clear any (auto-)pre-existing task Rake::Task[@name].clear if Rake::Task.task_defined?(@name) task @name do PuppetLint::OptParser.build if Array(@only_checks).any? enable_checks = Array(@only_checks).map(&:to_sym) PuppetLint.configuration.checks.each do |check| if enable_checks.include?(check) PuppetLint.configuration.send("enable_#{check}") else PuppetLint.configuration.send("disable_#{check}") end end end Array(@disable_checks).each do |check| PuppetLint.configuration.send("disable_#{check}") end ['with_filename', 'fail_on_warnings', 'error_level', 'log_format', 'with_context', 'fix', 'show_ignored', 'relative'].each do |config| value = instance_variable_get("@#{config}") PuppetLint.configuration.send("#{config}=".to_sym, value) unless value.nil? end @ignore_paths = PuppetLint.configuration.ignore_paths if PuppetLint.configuration.ignore_paths && @ignore_paths.empty? @pattern = PuppetLint.configuration.pattern if PuppetLint.configuration.pattern RakeFileUtils.send(:verbose, true) do linter = PuppetLint.new matched_files = FileList[@pattern] all_problems = [] matched_files = matched_files.exclude(*@ignore_paths) matched_files.to_a.each do |puppet_file| next unless File.file?(puppet_file) linter.file = puppet_file linter.run all_problems << linter.print_problems File.write(puppet_file, linter.manifest) if PuppetLint.configuration.fix && linter.problems.none? { |e| e[:check] == :syntax } end PuppetLint::Report::CodeClimateReporter.write_report_file(all_problems, PuppetLint.configuration.codeclimate_report_file) if PuppetLint.configuration.codeclimate_report_file abort if linter.errors? || ( linter.warnings? && PuppetLint.configuration.fail_on_warnings ) end end end |