FormulaInstaller: factor out requirement checking

This commit is contained in:
Jack Nagel 2013-01-23 00:26:24 -06:00
parent e9e16fefa9
commit 8b346d7a6d

View File

@ -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