# frozen_string_literal: true

def print_duplicates(list)

warn 'Error: The following assets have the same base name and would override another in the output:'
warn ''
warn list.join("\n")
warn ''
warn 'Consider renaming them to be unique.'

end

def refute_duplicate_basename(assets)

assets = assets.map { |f| Pathname(f) }
basenames = assets.map(&:basename)

return if basenames.length == basenames.uniq.length

# https://stackoverflow.com/a/8922931/3212907
duplicate_basenames = basenames.select { |e| basenames.count(e) > 1 }.uniq
list = assets.select { |a| duplicate_basenames.include?(a.basename) }
print_duplicates(list)
raise

end

refute_duplicate_basename(RESIZABLE_ASSETS)

RESIZED_ASSETS.zip(RESIZABLE_ASSETS).each do |target, source|

desc "Resize #{source} to #{target}"
file target => source do
  sh "gm convert '#{source}' -geometry '1920x1080>' '#{target}'"
end

end

refute_duplicate_basename(ASSET_SOURCES)

ASSETS.zip(ASSET_SOURCES).each do |target, source|

desc "Copy #{source} to #{target}"
file target => source do
  cp source, target
end

end