install_renamed: handle recursive installs.
Closes Homebrew/homebrew#49845. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
parent
6f9f3faef3
commit
0578ba0f42
@ -82,6 +82,7 @@ class Pathname
|
||||
src = Pathname(src)
|
||||
dst = join(new_basename)
|
||||
dst = yield(src, dst) if block_given?
|
||||
return unless dst
|
||||
|
||||
mkpath
|
||||
|
||||
|
@ -2,7 +2,8 @@ module InstallRenamed
|
||||
def install_p(_, new_basename)
|
||||
super do |src, dst|
|
||||
if src.directory?
|
||||
dst
|
||||
dst.install(src.children)
|
||||
next
|
||||
else
|
||||
append_default_if_different(src, dst)
|
||||
end
|
||||
|
@ -137,6 +137,16 @@ class PathnameTests < Homebrew::TestCase
|
||||
assert_equal "a", File.read(@dst+@src.basename+@file.basename)
|
||||
end
|
||||
|
||||
def test_install_renamed_directory_recursive
|
||||
@dst.extend(InstallRenamed)
|
||||
(@dst+@dir.basename).mkpath
|
||||
(@dst+@dir.basename+"another_file").write "a"
|
||||
@dir.mkpath
|
||||
(@dir+"another_file").write "b"
|
||||
@dst.install @dir
|
||||
assert_equal "b", File.read(@dst+@dir.basename+"another_file.default")
|
||||
end
|
||||
|
||||
def test_cp_path_sub_file
|
||||
@file.write "a"
|
||||
@file.cp_path_sub @src, @dst
|
||||
|
Loading…
x
Reference in New Issue
Block a user