From 5cca9b75a84005f3dd4b5463c6a735f4eebd967b Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 27 Nov 2019 12:36:21 +0000 Subject: [PATCH] deps: use `runtime_dependencies` more readily. If all the passed packages are currently installed then use `runtime_dependencies` to get dependency data more quickly and accurately. As discussed in https://github.com/Homebrew/brew/issues/6769. --- Library/Homebrew/cmd/deps.rb | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Library/Homebrew/cmd/deps.rb b/Library/Homebrew/cmd/deps.rb index 8a19f78ae4..fe6484a025 100644 --- a/Library/Homebrew/cmd/deps.rb +++ b/Library/Homebrew/cmd/deps.rb @@ -80,12 +80,13 @@ module Homebrew return end - @only_installed_arg = args.installed? && - recursive && - !args.include_build? && - !args.include_test? && - !args.include_optional? && - !args.skip_recommended? + installed = args.installed? || ARGV.formulae.all?(&:opt_or_installed_prefix_keg) + + @use_runtime_dependencies = installed && recursive && + !args.include_build? && + !args.include_test? && + !args.include_optional? && + !args.skip_recommended? if args.remaining.empty? raise FormulaUnspecifiedError unless args.installed? @@ -137,7 +138,7 @@ module Homebrew def deps_for_formula(f, recursive = false) includes, ignores = argv_includes_ignores(ARGV) - deps = f.runtime_dependencies if @only_installed_arg + deps = f.runtime_dependencies if @use_runtime_dependencies if recursive deps ||= recursive_includes(Dependency, f, includes, ignores)