From 3f25dd60fa74034ade3a8136f072a7275a4feb87 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Sun, 4 Mar 2012 14:17:54 +0000 Subject: [PATCH] canonical_name can resolve taps --- Library/Homebrew/cmd/tap.rb | 4 ++-- Library/Homebrew/formula.rb | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/cmd/tap.rb b/Library/Homebrew/cmd/tap.rb index a311af7f0c..74f0b20d7d 100644 --- a/Library/Homebrew/cmd/tap.rb +++ b/Library/Homebrew/cmd/tap.rb @@ -30,14 +30,14 @@ module Homebrew extend self if $?.success? gitignores << relative_pathname.basename.to_s else - opoo "#{relative_pathname.basename, ".rb"} conflicts" + opoo "#{relative_pathname.basename('.rb')} conflicts" end end tf = Tempfile.new("brew-tap") tf.write(gitignores.uniq.join("\n")) tf.close - mv tf.path, "#{HOMEBREW_PREFIX}/Library/Formula/.gitignore" + mv tf.path, "#{HOMEBREW_LIBRARY}/Formula/.gitignore" end private diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index d2d8995d26..9dcc3b860f 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -283,7 +283,6 @@ class Formula end def self.canonical_name name - # Cast pathnames to strings. name = name.to_s if name.kind_of? Pathname formula_with_that_name = HOMEBREW_REPOSITORY+"Library/Formula/#{name}.rb" @@ -291,7 +290,13 @@ class Formula possible_cached_formula = HOMEBREW_CACHE_FORMULA+"#{name}.rb" if name.include? "/" - # Don't resolve paths or URLs + if name =~ %r{(.+)/(.+)/(.+)} + tapd = HOMEBREW_REPOSITORY/"Library/Taps/#$1-#$2" + tapd.find_formula do |relative_pathname| + return "#{tapd}/#{relative_pathname}" if relative_pathname.stem.to_s == $3 + end if tapd.directory? + end + # Otherwise don't resolve paths or URLs name elsif formula_with_that_name.file? and formula_with_that_name.readable? name