From 872f46dc1e033447c02b6e8a426bef26dc0154ef Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Mon, 7 Apr 2014 13:07:04 -0500 Subject: [PATCH] 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. --- Library/Homebrew/cmd/uses.rb | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/Library/Homebrew/cmd/uses.rb b/Library/Homebrew/cmd/uses.rb index 23bab2e9f0..a6677b363a 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