From 8b346d7a6d2c1e57b72343410dad20f36ef2d2c5 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Wed, 23 Jan 2013 00:26:24 -0600 Subject: [PATCH] FormulaInstaller: factor out requirement checking --- Library/Homebrew/formula_installer.rb | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 0df987f1fe..a47dd108b9 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -74,9 +74,12 @@ class FormulaInstaller EOS end + unless ignore_deps + check_requirements + end + unless ignore_deps needed_deps = [] - needed_reqs = [] # HACK: If readline is present in the dependency tree, it will clash # with the stdlib's Readline module when the debugger is loaded @@ -86,13 +89,6 @@ class FormulaInstaller ARGV.filter_for_dependencies do needed_deps = f.recursive_deps.reject{ |d| d.installed? } - needed_reqs = f.recursive_requirements.reject { |r| r.satisfied? } - end - - unless needed_reqs.empty? - puts needed_reqs.map { |r| r.message } * "\n" - fatals = needed_reqs.select { |r| r.fatal? } - raise UnsatisfiedRequirements.new(f, fatals) unless fatals.empty? end unless needed_deps.empty? @@ -128,6 +124,18 @@ class FormulaInstaller opoo "Nothing was installed to #{f.prefix}" unless f.installed? end + def check_requirements + needed_reqs = ARGV.filter_for_dependencies do + f.recursive_requirements.reject(&:satisfied?) + end + + unless needed_reqs.empty? + puts needed_reqs.map(&:message) * "\n" + fatals = needed_reqs.select(&:fatal?) + raise UnsatisfiedRequirements.new(f, fatals) unless fatals.empty? + end + end + def install_dependency dep dep_tab = Tab.for_formula(dep) outdated_keg = Keg.new(dep.linked_keg.realpath) rescue nil