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