aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXu Cheng2015-05-19 21:57:45 +0800
committerXu Cheng2015-05-20 16:29:15 +0800
commit8b5787122061d115b1360f5e462f619e93af9a93 (patch)
tree9b0fa50e2485109151ade7f9064347816289ab8f
parentcacad69a8e6cd7d5fa747dfc9e081e51a987d9b4 (diff)
downloadbrew-8b5787122061d115b1360f5e462f619e93af9a93.tar.bz2
uses/deps: fix for recursive deps/reqs
Closes Homebrew/homebrew#39906. Signed-off-by: Xu Cheng <xucheng@me.com>
-rw-r--r--Library/Homebrew/cmd/deps.rb8
-rw-r--r--Library/Homebrew/cmd/uses.rb8
2 files changed, 8 insertions, 8 deletions
diff --git a/Library/Homebrew/cmd/deps.rb b/Library/Homebrew/cmd/deps.rb
index cffeb4205..9cbdafe97 100644
--- a/Library/Homebrew/cmd/deps.rb
+++ b/Library/Homebrew/cmd/deps.rb
@@ -34,11 +34,11 @@ module Homebrew
ignores << "optional?" if ARGV.include? "--skip-optional"
if recursive
- deps = f.recursive_dependencies.reject do |dep|
- ignores.any? { |ignore| dep.send(ignore) }
+ deps = f.recursive_dependencies do |dependent, dep|
+ Dependency.prune if ignores.any? { |ignore| dep.send(ignore) } && !dependent.build.with?(dep)
end
- reqs = f.recursive_requirements.reject do |req|
- ignores.any? { |ignore| req.send(ignore) }
+ reqs = f.recursive_requirements do |dependent, req|
+ Requirement.prune if ignores.any? { |ignore| req.send(ignore) } && !dependent.build.with?(req)
end
else
deps = f.deps.reject do |dep|
diff --git a/Library/Homebrew/cmd/uses.rb b/Library/Homebrew/cmd/uses.rb
index 8f4ead126..6d42f8e54 100644
--- a/Library/Homebrew/cmd/uses.rb
+++ b/Library/Homebrew/cmd/uses.rb
@@ -19,11 +19,11 @@ module Homebrew
used_formulae.all? do |ff|
begin
if recursive
- deps = f.recursive_dependencies.reject do |dep|
- ignores.any? { |ignore| dep.send(ignore) }
+ deps = f.recursive_dependencies do |dependent, dep|
+ Dependency.prune if ignores.any? { |ignore| dep.send(ignore) } && !dependent.build.with?(dep)
end
- reqs = f.recursive_requirements.reject do |req|
- ignores.any? { |ignore| req.send(ignore) }
+ reqs = f.recursive_requirements do |dependent, req|
+ Requirement.prune if ignores.any? { |ignore| req.send(ignore) } && !dependent.build.with?(req)
end
deps.any? { |dep| dep.to_formula.name == ff.name } ||
reqs.any? { |req| req.name == ff.name || req.class.default_formula == ff.name }