Restore documented behavior of brew uses foo bar

`brew uses foo bar` is supposed to return the intersection of formulae
that use foo and bar. However, this was broken by changes made to
support requirements that can coerce to regular dependencies.
This commit is contained in:
Jack Nagel 2014-04-07 13:07:04 -05:00
parent 574fc99258
commit 872f46dc1e

View File

@ -12,25 +12,18 @@ module Homebrew extend self
formulae = (ARGV.include? "--installed") ? Formula.installed : Formula
recursive = ARGV.flag? "--recursive"
uses = []
formulae.each do |f|
uses = formulae.select do |f|
used_formulae.all? do |ff|
if recursive
if f.recursive_dependencies.any? { |dep| dep.name == ff.name }
uses << f.to_s
elsif f.recursive_requirements.any? { |req| req.name == ff.name }
uses << f.to_s
end
f.recursive_dependencies.any? { |dep| dep.name == ff.name } ||
f.recursive_requirements.any? { |req| req.name == ff.name }
else
if f.deps.any? { |dep| dep.name == ff.name }
uses << f.to_s
elsif f.requirements.any? { |req| req.name == ff.name }
uses << f.to_s
end
f.deps.any? { |dep| dep.name == ff.name } ||
f.requirements.any? { |req| req.name == ff.name }
end
end
end
puts_columns uses
puts_columns uses.map(&:name)
end
end