diff options
Diffstat (limited to 'Library/Homebrew/cmd/uses.rb')
| -rw-r--r-- | Library/Homebrew/cmd/uses.rb | 13 | 
1 files changed, 11 insertions, 2 deletions
| diff --git a/Library/Homebrew/cmd/uses.rb b/Library/Homebrew/cmd/uses.rb index 1c029b0f0..abba88cec 100644 --- a/Library/Homebrew/cmd/uses.rb +++ b/Library/Homebrew/cmd/uses.rb @@ -11,15 +11,24 @@ module Homebrew      used_formulae = ARGV.formulae      formulae = (ARGV.include? "--installed") ? Formula.installed : Formula      recursive = ARGV.flag? "--recursive" +    ignores = [] +    ignores << "build?" if ARGV.flag? "--skip-build" +    ignores << "optional?" if ARGV.flag? "--skip-optional"      uses = formulae.select do |f|        used_formulae.all? do |ff|          begin            if recursive -            f.recursive_dependencies.any? { |dep| dep.to_formula.name == ff.name } || +            deps = f.recursive_dependencies.reject do |dep| +              ignores.any? { |ignore| dep.send(ignore) } +            end +            deps.any? { |dep| dep.to_formula.name == ff.name } ||                f.recursive_requirements.any? { |req| req.name == ff.name }            else -            f.deps.any? { |dep| dep.to_formula.name == ff.name } || +            deps = f.deps.reject do |dep| +              ignores.any? { |ignore| dep.send(ignore) } +            end +            deps.any? { |dep| dep.to_formula.name == ff.name } ||                f.requirements.any? { |req| req.name == ff.name }            end          rescue FormulaUnavailableError => e | 
