diff options
| author | Jack Nagel | 2014-04-07 13:07:04 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-04-07 13:07:04 -0500 |
| commit | 7d8a01a804a9460b9c8e49e3e4c188ee0346f417 (patch) | |
| tree | fde4fe3c38d2e92e5142dffce374ec175ad31827 | |
| parent | 488c5735c6db94d6d6615e7e7e046a9b114f5c1a (diff) | |
| download | homebrew-7d8a01a804a9460b9c8e49e3e4c188ee0346f417.tar.bz2 | |
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.
| -rw-r--r-- | Library/Homebrew/cmd/uses.rb | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/Library/Homebrew/cmd/uses.rb b/Library/Homebrew/cmd/uses.rb index 23bab2e9f..a6677b363 100644 --- a/Library/Homebrew/cmd/uses.rb +++ b/Library/Homebrew/cmd/uses.rb @@ -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 |
