aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMax Howell2012-03-16 17:24:46 +0000
committerMax Howell2012-03-16 21:06:17 +0000
commit4c02b2276b708e6018c28900ab55184c31b0afdc (patch)
tree1eb3e5caba3d91df998402ed926693336a30b69a /Library
parente6cb8cbee92693c96bfcd939f4de55e0875eb507 (diff)
downloadbrew-4c02b2276b708e6018c28900ab55184c31b0afdc.tar.bz2
Taps can only have one directory of formula
Rationale: Let's not have duplicate-names. Insisting on only one directory lets the filesystem enforce this unique-naming criteria for us. We special-case adamv/alt for now, until we remove it.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/extend/pathname.rb21
1 files changed, 19 insertions, 2 deletions
diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb
index da195e5a8..8465408fe 100644
--- a/Library/Homebrew/extend/pathname.rb
+++ b/Library/Homebrew/extend/pathname.rb
@@ -318,16 +318,33 @@ class Pathname
system '/usr/bin/install-info', '--delete', '--quiet', self.to_s, (self.dirname+'dir').to_s
end
- def find_formula pwd = self
+ def all_formula pwd = self
children.map{ |child| child.relative_path_from(pwd) }.each do |pn|
yield pn if pn.to_s =~ /.rb$/
end
children.each do |child|
- child.find_formula(pwd) do |pn|
+ child.all_formula(pwd) do |pn|
yield pn
end if child.directory?
end
end
+
+ def find_formula
+ # remove special casing once tap is established and alt removed
+ if self == HOMEBREW_LIBRARY/"Taps/adamv-alt"
+ all_formula do |file|
+ yield file
+ end
+ return
+ end
+
+ [self/:Formula, self/:HomebrewFormula, self].each do |d|
+ d.children.map{ |child| child.relative_path_from(self) }.each do |pn|
+ yield pn if pn.to_s =~ /.rb$/
+ break
+ end if d.exist?
+ end
+ end
end
# sets $n and $d so you can observe creation of stuff