aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorMike McQuaid2014-08-25 10:28:40 +0100
committerMike McQuaid2014-08-26 08:30:47 +0100
commit58cb4444da8f20e4e51800af253dedeadefc0edf (patch)
tree29ba5a23464315e4713c28058d832598331be800 /Library/Homebrew
parent31dc3d1f429b1309af7d673beb56ed89ab6f176b (diff)
downloadbrew-58cb4444da8f20e4e51800af253dedeadefc0edf.tar.bz2
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.
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/extend/pathname.rb1
-rw-r--r--Library/Homebrew/install_renamed.rb14
2 files changed, 15 insertions, 0 deletions
diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb
index 8ecff6bf4..ca1d167c1 100644
--- a/Library/Homebrew/extend/pathname.rb
+++ b/Library/Homebrew/extend/pathname.rb
@@ -48,6 +48,7 @@ class Pathname
dst = dst.to_s
dst = yield(src, dst) if block_given?
+ return unless dst
mkpath
diff --git a/Library/Homebrew/install_renamed.rb b/Library/Homebrew/install_renamed.rb
index 42d0fee8f..02a6e9b10 100644
--- a/Library/Homebrew/install_renamed.rb
+++ b/Library/Homebrew/install_renamed.rb
@@ -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