class PuppetLint::RakeTask
Public: A Rake task that can be loaded and used with everything you need.
Examples
require 'puppet-lint' PuppetLint::RakeTask.new
Constants
- DEFAULT_PATTERN
Attributes
disable_checks[RW]
error_level[RW]
fail_on_warnings[RW]
fix[RW]
ignore_paths[RW]
log_format[RW]
name[RW]
only_checks[RW]
pattern[RW]
relative[RW]
show_ignored[RW]
with_context[RW]
with_filename[RW]
Public Class Methods
new(*args, &task_block)
click to toggle source
Public: Initialise a new PuppetLint::RakeTask.
args - Not used.
Example
PuppetLint::RakeTask.new
# File lib/puppet-lint/tasks/puppet-lint.rb, line 39 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
Public Instance Methods
define(args, &task_block)
click to toggle source
# File lib/puppet-lint/tasks/puppet-lint.rb, line 50 def define(args, &task_block) desc 'Run puppet-lint' task_block.call(*[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 %w[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 if PuppetLint.configuration.ignore_paths && @ignore_paths.empty? @ignore_paths = PuppetLint.configuration.ignore_paths end if PuppetLint.configuration.pattern @pattern = PuppetLint.configuration.pattern end RakeFileUtils.send(:verbose, true) do linter = PuppetLint.new matched_files = FileList[@pattern] 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 linter.print_problems if PuppetLint.configuration.fix && linter.problems.none? { |e| e[:check] == :syntax } IO.write(puppet_file, linter.manifest) end end abort if linter.errors? || ( linter.warnings? && PuppetLint.configuration.fail_on_warnings ) end end end