diff --git a/Library/Homebrew/cmd/uses.rb b/Library/Homebrew/cmd/uses.rb index a9012dca58da138797bde6d9d66418eaf1507e8b..be8e1609a6507ece17007f22acfa1ae4c052144b 100644 --- a/Library/Homebrew/cmd/uses.rb +++ b/Library/Homebrew/cmd/uses.rb @@ -10,20 +10,27 @@ module Homebrew extend self formulae = ARGV.formulae - uses = Formula.select do |f| + uses = [] + Formula.each do |f| + next if ARGV.include? "--installed" and not f.installed? + formulae.all? do |ff| if ARGV.flag? '--recursive' - f.recursive_dependencies.any? { |dep| dep.name == ff.name } + 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}" + end else - f.deps.any? { |dep| dep.name == ff.name } + if f.deps.any? { |dep| dep.name == ff.name } + uses << f.to_s + elsif f.requirements.any? { |req| req.name == ff.name } + uses << ":#{f}" + end end end end - if ARGV.include? "--installed" - uses = uses.select { |f| Formula.installed.include? f } - end - - puts_columns uses.map(&:to_s).sort + puts_columns uses end end