diff options
| author | Mike McQuaid | 2017-01-17 19:58:30 +0000 |
|---|---|---|
| committer | GitHub | 2017-01-17 19:58:30 +0000 |
| commit | 1497dfaced84d92b87dc1b77dd95d9d3a952298c (patch) | |
| tree | 7d07fdebf41f947c36bf290c3f4bc753c921c186 /Library/Homebrew/cmd | |
| parent | a5019d281ef0757adcc0f4157e7f15495da01cdf (diff) | |
| parent | 36c1c8e9b0e5919a5165ffb5eaeddb54db1238b0 (diff) | |
| download | brew-1497dfaced84d92b87dc1b77dd95d9d3a952298c.tar.bz2 | |
Merge pull request #1862 from alyssais/uses_include_optional
uses: fix recursive requirement resolution
Diffstat (limited to 'Library/Homebrew/cmd')
| -rw-r--r-- | Library/Homebrew/cmd/uses.rb | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/Library/Homebrew/cmd/uses.rb b/Library/Homebrew/cmd/uses.rb index fb11a31a7..e5e140d36 100644 --- a/Library/Homebrew/cmd/uses.rb +++ b/Library/Homebrew/cmd/uses.rb @@ -58,15 +58,29 @@ module Homebrew Dependency.prune unless includes.include?("build?") end end - reqs = f.recursive_requirements do |dependent, req| + + dep_formulae = deps.map do |dep| + begin + dep.to_formula + rescue + end + end.compact + + reqs_by_formula = ([f] + dep_formulae).flat_map do |formula| + formula.requirements.map { |req| [formula, req] } + end + + reqs_by_formula.reject! do |dependent, req| if req.recommended? - Requirement.prune if ignores.include?("recommended?") || dependent.build.without?(req) + ignores.include?("recommended?") || dependent.build.without?(req) elsif req.optional? - Requirement.prune if !includes.include?("optional?") && !dependent.build.with?(req) + !includes.include?("optional?") && !dependent.build.with?(req) elsif req.build? - Requirement.prune unless includes.include?("build?") + !includes.include?("build?") end end + + reqs = reqs_by_formula.map(&:last) else deps = f.deps.reject do |dep| ignores.any? { |ignore| dep.send(ignore) } && !includes.any? { |include| dep.send(include) } |
