def cp(src, dest, options = {})
fail Errno::ENOTDIR, dest if src.is_a?(Array) && !File.directory?(dest)
RealFileUtils.cp src, dest, options.merge(noop: true)
return if options[:noop]
Array(src).each do |source|
dst_file = FileSystem.find(dest)
src_file = FileSystem.find(source)
fail Errno::ENOENT, source unless src_file
if dst_file && File.directory?(dst_file)
FileSystem.add(
File.join(
dest, File.basename(source)), src_file.entry.clone(dst_file))
else
FileSystem.delete(dest)
FileSystem.add(dest, src_file.entry.clone)
end
end
nil
end