5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/filament/util/fileutils.rb', line 5
def self.cp_r_if(src, dest, &block)
src_p = Pathname.new(src)
dest_p = Pathname.new(dest)
if yield src_p.to_s
dest_p = dest_p + src_p.basename if dest_p.exist? and dest_p.directory?
if src_p.directory?
if dest_p.exist?
raise "will not replace file with directory: #{dest_p}" unless dest_p.directory?
else
FileUtils.mkdir(dest_p)
end
src_p.children.each do |src_child_p|
relative = src_child_p.relative_path_from(src_p)
dest_child_p = dest_p + relative
cp_r_if(src_child_p, dest_child_p, &block)
end
else
log "copying #{src_p} to #{dest_p}"
FileUtils.cp_r(src_p, dest_p)
end
else
log "skipping #{src_p}"
end
end
|