FormulaInstaller: split up big method
This commit is contained in:
parent
d38b369497
commit
0b4316fbd4
@ -140,21 +140,16 @@ class FormulaInstaller
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def effective_deps
|
# Dependencies of f that were also explicitly requested on the command line.
|
||||||
@deps ||= begin
|
# These honor options like --HEAD and --devel.
|
||||||
deps = Set.new
|
def requested_deps
|
||||||
|
f.recursive_dependencies.select { |dep| dep.requested? && !dep.installed? }
|
||||||
# If a dep was also requested on the command line, we let it honor
|
|
||||||
# any influential flags (--HEAD, --devel, etc.) the user has passed
|
|
||||||
# when we check the installed status.
|
|
||||||
requested_deps = f.recursive_dependencies.select do |dep|
|
|
||||||
dep.requested? && !dep.installed?
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Otherwise, we filter these influential flags so that they do not
|
# All dependencies that we must install before installing f.
|
||||||
# affect installation prefixes and other properties when we decide
|
# These do not honor flags like --HEAD and --devel.
|
||||||
# whether or not the dep is needed.
|
def necessary_deps
|
||||||
necessary_deps = ARGV.filter_for_dependencies do
|
ARGV.filter_for_dependencies do
|
||||||
f.recursive_dependencies do |dependent, dep|
|
f.recursive_dependencies do |dependent, dep|
|
||||||
if dep.optional? || dep.recommended?
|
if dep.optional? || dep.recommended?
|
||||||
Dependency.prune unless dependent.build.with?(dep.name)
|
Dependency.prune unless dependent.build.with?(dep.name)
|
||||||
@ -173,14 +168,16 @@ class FormulaInstaller
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
deps.merge(requested_deps)
|
# Combine requested_deps and necessary deps.
|
||||||
deps.merge(necessary_deps)
|
def filter_deps
|
||||||
|
deps = Set.new.merge(requested_deps).merge(necessary_deps)
|
||||||
# Now that we've determined which deps we need, map them back
|
|
||||||
# onto recursive_dependencies to preserve installation order
|
|
||||||
f.recursive_dependencies.select { |d| deps.include? d }
|
f.recursive_dependencies.select { |d| deps.include? d }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def effective_deps
|
||||||
|
@effective_deps ||= filter_deps
|
||||||
end
|
end
|
||||||
|
|
||||||
def install_dependencies
|
def install_dependencies
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user