Sha256: f54d7077064aa63c2e3f8ce414d6d208ef0650419f0d897069d2f96a08d59073
Contents?: true
Size: 808 Bytes
Versions: 12
Compression:
Stored size: 808 Bytes
Contents
require 'fileutils' require 'murlsh' module Murlsh module_function # Recursive copy from sources to destination but ask before overwriting. # # Options are passed into FileUtils.mkdir_p FileUtils.copy. def cp_r_safe(sources, dest, options) sources.each do |source| new = File.join(dest, File.split(File.expand_path(source)).last) if File.directory?(source) FileUtils.mkdir_p(new, options) cp_r_safe(Dir.entries(source). reject { |f| %w{. ..}.include?(f) }. map { |f| File.join(source, f) }, new, options) else answer = if File.exists?(new) Murlsh.ask("#{new} exists. Overwrite?", 'n') else 'y' end FileUtils.copy(source, new, options) if answer == 'y' end end end end
Version data entries
12 entries across 12 versions & 1 rubygems