From 2f041abf2b3e99079f98520ebfc80111caec07cd Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Thu, 8 Apr 2021 22:05:02 +0100 Subject: [PATCH] dev-cmd/bottle: don't take uniq of arguments --- Library/Homebrew/cli/named_args.rb | 24 +++++++++++++++++------- Library/Homebrew/dev-cmd/bottle.rb | 2 +- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Library/Homebrew/cli/named_args.rb b/Library/Homebrew/cli/named_args.rb index 3ba7e5fd7c..80116b339a 100644 --- a/Library/Homebrew/cli/named_args.rb +++ b/Library/Homebrew/cli/named_args.rb @@ -44,10 +44,14 @@ module Homebrew # If both a formula and cask with the same name exist, returns # the formula and prints a warning unless `only` is specified. sig { - params(only: T.nilable(Symbol), ignore_unavailable: T.nilable(T::Boolean), method: T.nilable(Symbol)) - .returns(T::Array[T.any(Formula, Keg, Cask::Cask)]) + params( + only: T.nilable(Symbol), + ignore_unavailable: T.nilable(T::Boolean), + method: T.nilable(Symbol), + uniq: T::Boolean, + ).returns(T::Array[T.any(Formula, Keg, Cask::Cask)]) } - def to_formulae_and_casks(only: parent&.only_formula_or_cask, ignore_unavailable: nil, method: nil) + def to_formulae_and_casks(only: parent&.only_formula_or_cask, ignore_unavailable: nil, method: nil, uniq: true) @to_formulae_and_casks ||= {} @to_formulae_and_casks[only] ||= downcased_unique_named.flat_map do |name| load_formula_or_cask(name, only: only, method: method) @@ -59,7 +63,13 @@ module Homebrew raise rescue NoSuchKegError, FormulaUnavailableError, Cask::CaskUnavailableError, FormulaOrCaskUnavailableError ignore_unavailable ? [] : raise - end.uniq.freeze + end.freeze + + if uniq + @to_formulae_and_casks[only].uniq.freeze + else + @to_formulae_and_casks[only] + end end def to_formulae_to_casks(only: parent&.only_formula_or_cask, method: nil) @@ -149,9 +159,9 @@ module Homebrew end private :resolve_formula - sig { returns(T::Array[Formula]) } - def to_resolved_formulae - @to_resolved_formulae ||= to_formulae_and_casks(only: :formula, method: :resolve) + sig { params(uniq: T::Boolean).returns(T::Array[Formula]) } + def to_resolved_formulae(uniq: true) + @to_resolved_formulae ||= to_formulae_and_casks(only: :formula, method: :resolve, uniq: uniq) .freeze end diff --git a/Library/Homebrew/dev-cmd/bottle.rb b/Library/Homebrew/dev-cmd/bottle.rb index 40003748e0..d971cca998 100644 --- a/Library/Homebrew/dev-cmd/bottle.rb +++ b/Library/Homebrew/dev-cmd/bottle.rb @@ -91,7 +91,7 @@ module Homebrew return merge(args: args) if args.merge? ensure_relocation_formulae_installed! unless args.skip_relocation? - args.named.to_resolved_formulae.each do |f| + args.named.to_resolved_formulae(uniq: false).each do |f| bottle_formula f, args: args end end