From 9ab1df5b6875e9acc22f5bc4358373104af1e790 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 19 Mar 2012 14:11:25 +0000 Subject: [PATCH] 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. --- Library/Homebrew/cmd/unlink.rb | 2 +- Library/Homebrew/extend/ARGV.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/cmd/unlink.rb b/Library/Homebrew/cmd/unlink.rb index bf1f137e0d..12b0377815 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 25d19e2e7f..b994df6587 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?