etc.install: handle recursive directory installs.

We need to install the helper module not just on `etc` but also on all
subdirectories of it too. Also, handle the case where we install
a subdirectory with etc.install.

Closes Homebrew/homebrew#26145.
This commit is contained in:
Mike McQuaid 2014-08-25 10:28:40 +01:00
parent 31dc3d1f42
commit 58cb4444da
2 changed files with 15 additions and 0 deletions

View File

@ -48,6 +48,7 @@ class Pathname
dst = dst.to_s
dst = yield(src, dst) if block_given?
return unless dst
mkpath

View File

@ -2,6 +2,12 @@ module InstallRenamed
def install_p src, new_basename = nil
super do |src, dst|
dst += "/#{File.basename(src)}" if File.directory? dst
if File.directory? src
Pathname.new(dst).install Dir["#{src}/*"]
next
end
append_default_if_different(src, dst)
end
end
@ -12,6 +18,14 @@ module InstallRenamed
end
end
def + path
super(path).extend(InstallRenamed)
end
def / path
super(path).extend(InstallRenamed)
end
private
def append_default_if_different src, dst