From 9f40945c87eacf79075eb0d0f403377e084e56d8 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Wed, 7 Oct 2020 12:12:10 +0200 Subject: [PATCH] Fix installing taps in `brew install`. Partially reverts f54b458cdaec5091cf7abfa3e09e9050a94a4a26. --- Library/Homebrew/cmd/install.rb | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index 33f42ec12e..2782b4d7df 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -146,15 +146,16 @@ module Homebrew def install args = install_args.parse - only = :formula if args.formula? - only = :cask if args.cask? + only = :formula if args.formula? && !args.cask? + only = :cask if args.cask? && !args.formula? - objects = args.named.to_objects(only: only) + args.named.each do |name| + next if File.exist?(name) + next if name !~ HOMEBREW_TAP_FORMULA_REGEX && name !~ HOMEBREW_CASK_TAP_CASK_REGEX - taps, formulae_or_casks = objects.partition { |o| o.is_a?(Tap) } - taps = (taps + formulae_or_casks.map(&:tap).compact).uniq.sort_by(&:name) - - taps.reject(&:installed?).each(&:install) + tap = Tap.fetch(Regexp.last_match(1), Regexp.last_match(2)) + tap.install unless tap.installed? + end if args.ignore_dependencies? opoo <<~EOS @@ -165,7 +166,8 @@ module Homebrew EOS end - formulae, casks = formulae_or_casks.partition { |formula_or_cask| formula_or_cask.is_a?(Formula) } + formulae, casks = args.named.to_formulae_and_casks(only: only) + .partition { |formula_or_cask| formula_or_cask.is_a?(Formula) } if casks.any? Cask::Cmd::Install.install_casks(