aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorWilliam Woodruff2015-06-23 19:21:55 -0400
committerMisty De Meo2015-08-21 10:58:45 -0700
commit76dcad7c82247e1c342cecda67fda11555788f0d (patch)
tree51cab607b776ec270d05eb55d8d4db1af5850ae5 /Library
parent85187bf6d3779692c77b5ef8a256f16b3048294a (diff)
downloadbrew-76dcad7c82247e1c342cecda67fda11555788f0d.tar.bz2
Split compute_and_install_dependencies
This is so so that check_dependencies_bottled can be called when bottles are being poured; implement check_dependencies_bottled
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/formula_installer.rb37
1 files changed, 26 insertions, 11 deletions
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 5855297ee..bb1ed74f7 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -147,7 +147,11 @@ class FormulaInstaller
check_conflicts
- compute_and_install_dependencies unless ignore_deps?
+ if !ignore_deps?
+ deps = compute_dependencies
+ check_dependencies_bottled(deps) if pour_bottle?
+ install_dependencies(deps)
+ end
return if only_deps?
@@ -217,18 +221,28 @@ class FormulaInstaller
raise FormulaConflictError.new(formula, conflicts) unless conflicts.empty?
end
- def compute_and_install_dependencies
+ def compute_dependencies
req_map, req_deps = expand_requirements
-
check_requirements(req_map)
-
deps = expand_dependencies(req_deps + formula.deps)
- if deps.empty? && only_deps?
- puts "All dependencies for #{formula.full_name} are satisfied."
- else
- install_dependencies(deps)
+ deps
+ end
+
+ def check_dependencies_bottled(deps)
+ unbottled = []
+
+ unbottled = deps.select do |dep, _|
+ formula = dep.to_formula
+ !formula.pour_bottle? && !MacOS.can_build?
end
+
+ raise BuildToolsError.new(unbottled) unless unbottled.empty?
+ end
+
+ def compute_and_install_dependencies
+ deps = compute_dependencies
+ install_dependencies(deps)
end
def check_requirements(req_map)
@@ -319,12 +333,13 @@ class FormulaInstaller
end
def install_dependencies(deps)
- if deps.length > 1
+ if deps.empty? && only_deps?
+ puts "All dependencies for #{formula.full_name} are satisfied."
+ else
oh1 "Installing dependencies for #{formula.full_name}: #{Tty.green}#{deps.map(&:first)*", "}#{Tty.reset}"
+ deps.each { |dep, options| install_dependency(dep, options) }
end
- deps.each { |dep, options| install_dependency(dep, options) }
-
@show_header = true unless deps.empty?
end