diff options
| author | Jack Nagel | 2013-01-23 00:26:24 -0600 |
|---|---|---|
| committer | Jack Nagel | 2013-01-26 12:14:44 -0600 |
| commit | dc96fe8567df3b0b3a2a511d6ed21ead1a06d7eb (patch) | |
| tree | e22c46a7b3167017a37efbab9b578c606b664751 | |
| parent | f180a4f7dcd80e0d14cf26c456c1f0992653c8d3 (diff) | |
| download | homebrew-dc96fe8567df3b0b3a2a511d6ed21ead1a06d7eb.tar.bz2 | |
FormulaInstaller: factor out requirement checking
| -rw-r--r-- | Library/Homebrew/formula_installer.rb | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 0df987f1f..a47dd108b 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -75,8 +75,11 @@ class FormulaInstaller 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 |
