aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2012-08-18 18:37:32 -0500
committerJack Nagel2012-08-18 19:33:39 -0500
commit95268173419a1b28d696cc969dca2d0b0a6e5102 (patch)
tree330ae90f674e5b644f9700633516e6974c56162d /Library
parent07d6ace2f2c231551acd22ef5224e8901aaa27c9 (diff)
downloadhomebrew-95268173419a1b28d696cc969dca2d0b0a6e5102.tar.bz2
Don't lie about upgrading up-to-date formulae
Usually, the "foo-version already installed" error is printed by FormulaInstaller. However, if an up-to-date formula that has outdated deps is passed on the command line, we proceed to upgrade the deps and then print a message saying that the formulae given on the command line is already installed. Catch this earlier, when the outdated list is being populated, print an appropriate message, and skip the up-to-date formula. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/upgrade.rb4
-rw-r--r--Library/Homebrew/formula.rb5
-rw-r--r--Library/Homebrew/formula_installer.rb3
3 files changed, 9 insertions, 3 deletions
diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb
index 1afef1261..7ec02a0b5 100644
--- a/Library/Homebrew/cmd/upgrade.rb
+++ b/Library/Homebrew/cmd/upgrade.rb
@@ -21,7 +21,9 @@ module Homebrew extend self
Homebrew.outdated_brews
else
ARGV.formulae.select do |f|
- unless f.rack.exist? and not f.rack.children.empty?
+ if f.installed?
+ onoe "#{f}-#{f.installed_version} already installed"
+ elsif not f.rack.exist? or f.rack.children.empty?
onoe "#{f} not installed"
else
true
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index d6f9f8f7b..57e5f76de 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -105,6 +105,11 @@ class Formula
end
end
+ def installed_version
+ require 'keg'
+ Keg.new(installed_prefix).version
+ end
+
def prefix
validate_variable :name
validate_variable :version
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 7421cabe0..06ac93975 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -24,8 +24,7 @@ class FormulaInstaller
def check_install_sanity
if f.installed?
- keg = Keg.new(f.installed_prefix)
- raise CannotInstallFormulaError, "#{f}-#{keg.version} already installed"
+ raise CannotInstallFormulaError, "#{f}-#{f.installed_version} already installed"
end
# Building head-only without --HEAD is an error