aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Howell2012-03-19 14:11:25 +0000
committerMax Howell2012-03-19 14:17:50 +0000
commit9ab1df5b6875e9acc22f5bc4358373104af1e790 (patch)
tree90f0689aa59f91fe408b0013935b4c7f320f8b28
parent46a9c9b6a09a67d8ebfc0fd07fc942a627f135a0 (diff)
downloadbrew-9ab1df5b6875e9acc22f5bc4358373104af1e790.tar.bz2
If no formula but multiple kegs, advise resolution
In this case the user will simply have to delete all but one keg in order to use the command that uses ARGV.kegs. Refs Homebrew/homebrew#11050.
-rw-r--r--Library/Homebrew/cmd/unlink.rb2
-rw-r--r--Library/Homebrew/extend/ARGV.rb10
2 files changed, 11 insertions, 1 deletions
diff --git a/Library/Homebrew/cmd/unlink.rb b/Library/Homebrew/cmd/unlink.rb
index bf1f137e0..12b037781 100644
--- a/Library/Homebrew/cmd/unlink.rb
+++ b/Library/Homebrew/cmd/unlink.rb
@@ -1,6 +1,6 @@
module Homebrew extend self
def unlink
- raise FormulaUnspecifiedError if ARGV.named.empty?
+ raise KegUnspecifiedError if ARGV.named.empty?
ARGV.kegs.each do |keg|
print "Unlinking #{keg}... "
diff --git a/Library/Homebrew/extend/ARGV.rb b/Library/Homebrew/extend/ARGV.rb
index 25d19e2e7..b994df658 100644
--- a/Library/Homebrew/extend/ARGV.rb
+++ b/Library/Homebrew/extend/ARGV.rb
@@ -16,6 +16,7 @@ module HomebrewArgvExtension
end
def kegs
+ rack = nil
require 'keg'
require 'formula'
@kegs ||= downcased_unique_named.collect do |name|
@@ -47,6 +48,15 @@ module HomebrewArgvExtension
Keg.new(linked_keg_ref.realpath)
end
end
+ rescue FormulaUnavailableError
+ if rack
+ raise <<-EOS.undent
+ Multiple kegs installed to #{rack}
+ Please remove all but one and then try again.
+ EOS
+ else
+ raise
+ end
end
# self documenting perhaps?