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