aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMax Howell2011-09-02 09:55:37 +0100
committerMax Howell2011-09-02 12:12:30 +0100
commit34aea5c987705b43f8fff72e683d24c248156c4f (patch)
tree4acbad663eec26153ffdef5d6feec6136a1fc4f8 /Library
parent7aa45e81cbb446992ff2c7356737e9bb5a74d4db (diff)
downloadbrew-34aea5c987705b43f8fff72e683d24c248156c4f.tar.bz2
Handle brew upgrade ARGV errors properly
Fixes Homebrew/homebrew#7304.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/upgrade.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb
index 76e40e969..1303c1973 100644
--- a/Library/Homebrew/cmd/upgrade.rb
+++ b/Library/Homebrew/cmd/upgrade.rb
@@ -7,6 +7,12 @@ class Fixnum
end
end
+class Formula
+ def rack
+ HOMEBREW_CELLAR/name
+ end
+end
+
module Homebrew extend self
def upgrade
Homebrew.perform_preinstall_checks
@@ -14,7 +20,11 @@ module Homebrew extend self
outdated = if ARGV.named.empty?
Homebrew.outdated_brews
else
- ARGV.formulae.map{ |f| [f.prefix.parent, f.name, f.version] }
+ ARGV.formulae.map do |f|
+ raise "#{f} already upgraded" if f.installed?
+ raise "#{f} not installed" unless f.rack.exist? and not f.rack.children.empty?
+ [f.prefix.parent, f.name, f.version]
+ end
end
if outdated.length > 1