diff options
| author | Justin Hileman | 2011-09-01 16:14:45 -0700 |
|---|---|---|
| committer | Max Howell | 2011-09-02 12:12:30 +0100 |
| commit | 8f3a74993b3eec0e9f70b1b7d3903c2ca710ec5e (patch) | |
| tree | a82d99fcee98a848b5d2af6a761c8d610384c7a6 | |
| parent | 34aea5c987705b43f8fff72e683d24c248156c4f (diff) | |
| download | brew-8f3a74993b3eec0e9f70b1b7d3903c2ca710ec5e.tar.bz2 | |
Allow 'brew link' to work with URL-based formulae
Closes Homebrew/homebrew#7373.
Signed-off-by: Max Howell <max@methylblue.com>
I added some comments.
| -rw-r--r-- | Library/Homebrew/extend/ARGV.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/Library/Homebrew/extend/ARGV.rb b/Library/Homebrew/extend/ARGV.rb index 3fef2dcd0..3efd18f73 100644 --- a/Library/Homebrew/extend/ARGV.rb +++ b/Library/Homebrew/extend/ARGV.rb @@ -18,9 +18,16 @@ module HomebrewArgvExtension require 'keg' require 'formula' @kegs ||= downcased_unique_named.collect do |name| - d = HOMEBREW_CELLAR+Formula.canonical_name(name) - dirs = d.children.select{ |pn| pn.directory? } rescue [] - raise NoSuchKegError.new(name) if not d.directory? or dirs.length == 0 + n = Formula.canonical_name(name) + rack = HOMEBREW_CELLAR + if n.include? "/" + # canonical_name returns a path if it was a formula installed via a + # URL. And we only want the name. FIXME that function is insane. + Pathname.new(n).stem + else + n + end + dirs = rack.children.select{ |pn| pn.directory? } rescue [] + raise NoSuchKegError.new(name) if not rack.directory? or dirs.length == 0 raise MultipleVersionsInstalledError.new(name) if dirs.length > 1 Keg.new dirs.first end |
