module SvelteOnRails::Installer::Utils

def self.write_templates(templates, ask_for_overwrite: true, app_root: nil, silent: false)

def self.write_templates(templates, ask_for_overwrite: true, app_root: nil, silent: false)
  paths = template_paths(templates, app_root: app_root)
  existing = paths.dup.select { |p| File.exist?(p[2]) }
  if existing.present? && ask_for_overwrite
    begin
      puts "#{'File'.pluralize(existing.length)} already exists:\n#{existing.map { |p| p[1] }.join("\n")}.\nOverwrite? (y/n)"
      continue = STDIN.gets.chomp.downcase[0]
    end until ['y', 'n'].include?(continue)
    if continue == 'n'
      puts "Skipping write #{'template'.pluralize(templates.length)}."
      return
    end
  end
  paths.each do |p|
    v = (File.exist?(p[2]) ? 'replaced' : 'created')
    FileUtils.mkdir_p(File.dirname(p[2]))
    FileUtils.cp(p.first, p[2])
    puts "#{v}: #{p[1]}" unless silent
  end
end