aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2014-10-31 18:33:39 -0500
committerJack Nagel2014-10-31 18:33:39 -0500
commit86ba6234edb5b4bf87a21310f596d3239fc06c89 (patch)
tree9aa3bca0fa23544be8589a452bd76c4b7a8e9bc4 /Library
parent3298d129a9eee1df86e375b6863ff81bb4b1a342 (diff)
downloadhomebrew-86ba6234edb5b4bf87a21310f596d3239fc06c89.tar.bz2
Remove FormulaAlreadyInstalledError
install is the only command that can trigger this warning, so it should be handled before instantiating the installer.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/install.rb14
-rw-r--r--Library/Homebrew/cmd/reinstall.rb2
-rw-r--r--Library/Homebrew/exceptions.rb2
-rw-r--r--Library/Homebrew/formula_installer.rb6
4 files changed, 11 insertions, 13 deletions
diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb
index 16efadff4..00be1a2f5 100644
--- a/Library/Homebrew/cmd/install.rb
+++ b/Library/Homebrew/cmd/install.rb
@@ -25,6 +25,8 @@ module Homebrew
end unless ARGV.force?
begin
+ formulae = []
+
ARGV.formulae.each do |f|
# Building head-only without --HEAD is an error
if not ARGV.build_head? and f.stable.nil?
@@ -38,11 +40,19 @@ module Homebrew
if ARGV.build_head? and f.head.nil?
raise "No head is defined for #{f.name}"
end
+
+ if f.installed?
+ msg = "#{f.name}-#{f.installed_version} already installed"
+ msg << ", it's just not linked" unless f.linked_keg.symlink? or f.keg_only?
+ opoo msg
+ else
+ formulae << f
+ end
end
perform_preinstall_checks
- ARGV.formulae.each { |f| install_formula(f) }
+ formulae.each { |f| install_formula(f) }
rescue FormulaUnavailableError => e
ofail e.message
query = query_regexp(e.name)
@@ -126,8 +136,6 @@ module Homebrew
rescue FormulaInstallationAlreadyAttemptedError
# We already attempted to install f as part of the dependency tree of
# another formula. In that case, don't generate an error, just move on.
- rescue FormulaAlreadyInstalledError => e
- opoo e.message
rescue CannotInstallFormulaError => e
ofail e.message
check_macports
diff --git a/Library/Homebrew/cmd/reinstall.rb b/Library/Homebrew/cmd/reinstall.rb
index b72fbad09..2ac1114d8 100644
--- a/Library/Homebrew/cmd/reinstall.rb
+++ b/Library/Homebrew/cmd/reinstall.rb
@@ -31,8 +31,6 @@ module Homebrew
fi.finish
rescue FormulaInstallationAlreadyAttemptedError
# next
- rescue FormulaAlreadyInstalledError => e
- opoo e.message
rescue Exception
ignore_interrupts { restore_backup(keg, f) }
raise
diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb
index 100effdbd..d938b52e2 100644
--- a/Library/Homebrew/exceptions.rb
+++ b/Library/Homebrew/exceptions.rb
@@ -81,8 +81,6 @@ end
class CannotInstallFormulaError < RuntimeError; end
-class FormulaAlreadyInstalledError < RuntimeError; end
-
class FormulaInstallationAlreadyAttemptedError < RuntimeError
def initialize(formula)
super "Formula installation already attempted: #{formula.name}"
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 6a2c27a35..1e07bdbaa 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -104,12 +104,6 @@ class FormulaInstaller
def check_install_sanity
raise FormulaInstallationAlreadyAttemptedError, formula if @@attempted.include?(formula)
- if formula.installed?
- msg = "#{formula.name}-#{formula.installed_version} already installed"
- msg << ", it's just not linked" unless formula.linked_keg.symlink? or formula.keg_only?
- raise FormulaAlreadyInstalledError, msg
- end
-
unless ignore_deps?
unlinked_deps = formula.recursive_dependencies.map(&:to_formula).select do |dep|
dep.installed? and not dep.keg_only? and not dep.linked_keg.directory?