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.
This commit is contained in:
Mike McQuaid 2019-11-27 12:36:21 +00:00
parent 2e382cdbdf
commit 5cca9b75a8
No known key found for this signature in database
GPG Key ID: 48A898132FD8EE70

View File

@ -80,12 +80,13 @@ module Homebrew
return return
end end
@only_installed_arg = args.installed? && installed = args.installed? || ARGV.formulae.all?(&:opt_or_installed_prefix_keg)
recursive &&
!args.include_build? && @use_runtime_dependencies = installed && recursive &&
!args.include_test? && !args.include_build? &&
!args.include_optional? && !args.include_test? &&
!args.skip_recommended? !args.include_optional? &&
!args.skip_recommended?
if args.remaining.empty? if args.remaining.empty?
raise FormulaUnspecifiedError unless args.installed? raise FormulaUnspecifiedError unless args.installed?
@ -137,7 +138,7 @@ module Homebrew
def deps_for_formula(f, recursive = false) def deps_for_formula(f, recursive = false)
includes, ignores = argv_includes_ignores(ARGV) includes, ignores = argv_includes_ignores(ARGV)
deps = f.runtime_dependencies if @only_installed_arg deps = f.runtime_dependencies if @use_runtime_dependencies
if recursive if recursive
deps ||= recursive_includes(Dependency, f, includes, ignores) deps ||= recursive_includes(Dependency, f, includes, ignores)