diff options
| author | Jack Nagel | 2014-04-07 13:07:04 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-04-07 13:07:04 -0500 |
| commit | 872f46dc1e033447c02b6e8a426bef26dc0154ef (patch) | |
| tree | b3616b33285c5710092399b6ff74313a8dc1890d /Library/Homebrew/cmd | |
| parent | 574fc99258b1a40796ea53dcd60d38e25303490f (diff) | |
| download | brew-872f46dc1e033447c02b6e8a426bef26dc0154ef.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.
Diffstat (limited to 'Library/Homebrew/cmd')
| -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 |
