module Ra10ke::Duplicates

Public Instance Methods

define_task_duplicates(*_args) click to toggle source
# File lib/ra10ke/duplicates.rb, line 7
def define_task_duplicates(*_args)
  desc 'Check Puppetfile for duplicates'
  task :duplicates do
    duplicates = Ra10ke::Duplicates::Verification.new(get_puppetfile.puppetfile_path).duplicates
    exit_code = 0
    if duplicates.any?
      exit_code = 1
      message = 'Error: Duplicates exist in the Puppetfile'

      duplicates.map do |name, sources|
        puts "#{name}:"
        sources.each do |source|
          puts "- #{source}"
        end

        puts
      end
    else
      message = 'Puppetfile is free of duplicates'
    end

    abort(message) if exit_code.positive?
    puts message
  end
end