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)
|
src = Pathname(src)
|
||||||
dst = join(new_basename)
|
dst = join(new_basename)
|
||||||
dst = yield(src, dst) if block_given?
|
dst = yield(src, dst) if block_given?
|
||||||
|
return unless dst
|
||||||
|
|
||||||
mkpath
|
mkpath
|
||||||
|
|
||||||
|
@ -2,7 +2,8 @@ module InstallRenamed
|
|||||||
def install_p(_, new_basename)
|
def install_p(_, new_basename)
|
||||||
super do |src, dst|
|
super do |src, dst|
|
||||||
if src.directory?
|
if src.directory?
|
||||||
dst
|
dst.install(src.children)
|
||||||
|
next
|
||||||
else
|
else
|
||||||
append_default_if_different(src, dst)
|
append_default_if_different(src, dst)
|
||||||
end
|
end
|
||||||
|
@ -137,6 +137,16 @@ class PathnameTests < Homebrew::TestCase
|
|||||||
assert_equal "a", File.read(@dst+@src.basename+@file.basename)
|
assert_equal "a", File.read(@dst+@src.basename+@file.basename)
|
||||||
end
|
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
|
def test_cp_path_sub_file
|
||||||
@file.write "a"
|
@file.write "a"
|
||||||
@file.cp_path_sub @src, @dst
|
@file.cp_path_sub @src, @dst
|
||||||
|
Loading…
x
Reference in New Issue
Block a user