From b4545f364ef8bb0932c2367eade1d380f277c4bf Mon Sep 17 00:00:00 2001 From: Xu Cheng Date: Wed, 2 Sep 2015 20:56:04 +0800 Subject: test-bot: only test the runtime dependencies. Also add support to `brew uses` to ignore build or optional dependencies. Closes #36154. Closes #36656. Signed-off-by: Mike McQuaid --- Library/Homebrew/cmd/test-bot.rb | 2 +- Library/Homebrew/cmd/uses.rb | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'Library/Homebrew/cmd') diff --git a/Library/Homebrew/cmd/test-bot.rb b/Library/Homebrew/cmd/test-bot.rb index d7414302a..9a1478764 100644 --- a/Library/Homebrew/cmd/test-bot.rb +++ b/Library/Homebrew/cmd/test-bot.rb @@ -363,7 +363,7 @@ module Homebrew unchanged_dependencies = dependencies - @formulae changed_dependences = dependencies - unchanged_dependencies - dependents = `brew uses #{formula_name}`.split("\n") + dependents = `brew uses --skip-build --skip-optional #{formula_name}`.split("\n") dependents -= @formulae dependents = dependents.map {|d| Formulary.factory(d)} 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 -- cgit v1.2.3