Add to_latest_kegs
This commit is contained in:
parent
0938500721
commit
fa9a525d32
@ -98,6 +98,8 @@ module Homebrew
|
|||||||
Formulary.factory(name, *spec, force_bottle: @force_bottle, flags: @flags)
|
Formulary.factory(name, *spec, force_bottle: @force_bottle, flags: @flags)
|
||||||
when :resolve
|
when :resolve
|
||||||
resolve_formula(name)
|
resolve_formula(name)
|
||||||
|
when :latest_kegs
|
||||||
|
resolve_latest_keg(name)
|
||||||
when :keg, :default_kegs
|
when :keg, :default_kegs
|
||||||
# TODO: (3.2) Uncomment the following
|
# TODO: (3.2) Uncomment the following
|
||||||
# odeprecated "`load_formula_or_cask` with `method: :keg`",
|
# odeprecated "`load_formula_or_cask` with `method: :keg`",
|
||||||
@ -223,6 +225,18 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { returns(T::Array[Keg]) }
|
||||||
|
def to_latest_kegs
|
||||||
|
@to_default_kegs ||= begin
|
||||||
|
to_formulae_and_casks(only: :formula, method: :latest_kegs).freeze
|
||||||
|
rescue NoSuchKegError => e
|
||||||
|
if (reason = MissingFormula.suggest_command(e.name, "uninstall"))
|
||||||
|
$stderr.puts reason
|
||||||
|
end
|
||||||
|
raise e
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
sig { returns(T::Array[Keg]) }
|
sig { returns(T::Array[Keg]) }
|
||||||
def to_kegs
|
def to_kegs
|
||||||
@to_kegs ||= begin
|
@to_kegs ||= begin
|
||||||
@ -297,6 +311,15 @@ module Homebrew
|
|||||||
[rack, kegs]
|
[rack, kegs]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def resolve_latest_keg(name)
|
||||||
|
_, kegs = resolve_kegs(name)
|
||||||
|
|
||||||
|
# Return head keg if it is the only installed keg
|
||||||
|
return kegs if kegs.length == 1
|
||||||
|
|
||||||
|
kegs.reject { |k| k.version.head? }.max_by(&:version)
|
||||||
|
end
|
||||||
|
|
||||||
def resolve_default_keg(name)
|
def resolve_default_keg(name)
|
||||||
rack, kegs = resolve_kegs(name)
|
rack, kegs = resolve_kegs(name)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user