Work in progress for resource_version

This commit is contained in:
Mohammad Zain Abbas 2022-07-27 13:54:20 +02:00
parent 32659afdbe
commit 2777610095

View File

@ -162,7 +162,7 @@ module Homebrew
formulae_and_casks_to_check: T::Array[T.any(Formula, Cask::Cask)], formulae_and_casks_to_check: T::Array[T.any(Formula, Cask::Cask)],
full_name: T::Boolean, full_name: T::Boolean,
handle_name_conflict: T::Boolean, handle_name_conflict: T::Boolean,
resources_only: T::Boolean, check_resources: T::Boolean,
json: T::Boolean, json: T::Boolean,
newer_only: T::Boolean, newer_only: T::Boolean,
debug: T::Boolean, debug: T::Boolean,
@ -172,7 +172,7 @@ module Homebrew
} }
def run_checks( def run_checks(
formulae_and_casks_to_check, formulae_and_casks_to_check,
full_name: false, handle_name_conflict: false, resources_only: false, json: false, newer_only: false, full_name: false, handle_name_conflict: false, check_resources: false, json: false, newer_only: false,
debug: false, quiet: false, verbose: false debug: false, quiet: false, verbose: false
) )
load_other_tap_strategies(formulae_and_casks_to_check) load_other_tap_strategies(formulae_and_casks_to_check)
@ -280,25 +280,24 @@ module Homebrew
latest = if formula&.head_only? latest = if formula&.head_only?
formula.head.downloader.fetch_last_commit formula.head.downloader.fetch_last_commit
else else
if resources_only version_info = latest_version(
version_info = resource_version( formula_or_cask,
referenced_formula_or_cask: referenced_formula_or_cask,
livecheck_references: livecheck_references,
json: json, full_name: use_full_name, verbose: verbose, debug: debug
)
version_info[:latest] if version_info.present?
# In case "--resources" flag is passed as well
if check_resources
resource_version_info = resource_version(
formula_or_cask, formula_or_cask,
referenced_formula: referenced_formula_or_cask,
livecheck_references: livecheck_references,
json: json, json: json,
full_name: use_full_name, full_name: use_full_name,
verbose: verbose, verbose: verbose,
debug: debug debug: debug
) )
else
version_info = latest_version(
formula_or_cask,
referenced_formula_or_cask: referenced_formula_or_cask,
livecheck_references: livecheck_references,
json: json, full_name: use_full_name, verbose: verbose, debug: debug
)
end end
version_info[:latest] if version_info.present?
end end
if latest.blank? if latest.blank?
@ -353,7 +352,7 @@ module Homebrew
next info next info
end end
if resources_only if check_resources
#@todo: modify print_latest_version for resources #@todo: modify print_latest_version for resources
onoe "#{Tty.blue}Debug info for resources is in progress!#{Tty.reset}" onoe "#{Tty.blue}Debug info for resources is in progress!#{Tty.reset}"
else else
@ -607,9 +606,7 @@ module Homebrew
# the version information. Returns nil if a latest version couldn't be found. # the version information. Returns nil if a latest version couldn't be found.
sig { sig {
params( params(
formula_with_resources: T.any(Formula), formula_or_cask: T.any(Formula, Cask::Cask),
referenced_formula: T.nilable(T.any(Formula)),
livecheck_references: T::Array[T.any(Formula, Cask::Cask)],
json: T::Boolean, json: T::Boolean,
full_name: T::Boolean, full_name: T::Boolean,
verbose: T::Boolean, verbose: T::Boolean,
@ -617,26 +614,23 @@ module Homebrew
).returns(T.nilable(Hash)) ).returns(T.nilable(Hash))
} }
def resource_version( def resource_version(
formula_with_resources, formula_or_cask,
referenced_formula: nil,
livecheck_references: [],
json: false, json: false,
full_name: false, full_name: false,
verbose: false, verbose: false,
debug: false debug: false
) )
formula_with_resources.resources.each_with_index do |resource, i| formula_or_cask.resources.each_with_index do |resource, i|
has_livecheckable = resource.livecheckable? has_livecheckable = resource.livecheckable?
if debug if debug
puts "Resource: #{resource_name(resource, full_name: full_name)}" odebug "Resource: #{resource_name(resource, full_name: full_name)}"
puts "Livecheckable?: #{has_livecheckable ? "Yes" : "No"}" odebug "Livecheckable?: #{has_livecheckable ? "Yes" : "No"}"
end end
#@todo: for now, only check resources with livecheck block # For now, only check resources with livecheck block
if has_livecheckable if has_livecheckable
livecheck = resource.livecheck livecheck = resource.livecheck
# referenced_livecheck = referenced_formula_or_cask&.livecheck
livecheck_url = livecheck.url livecheck_url = livecheck.url
livecheck_regex = livecheck.regex livecheck_regex = livecheck.regex
livecheck_strategy = livecheck.strategy livecheck_strategy = livecheck.strategy
@ -650,7 +644,9 @@ module Homebrew
urls = [livecheck_url_string] if livecheck_url_string urls = [livecheck_url_string] if livecheck_url_string
urls ||= checkable_urls(resource) urls ||= checkable_urls(resource)
puts "URLs: #{urls}" if debug
odebug "URLs: #{urls}"
end
checked_urls = [] checked_urls = []
@ -663,7 +659,6 @@ module Homebrew
end end
next if checked_urls.include?(url) next if checked_urls.include?(url)
strategies = Strategy.from_url( strategies = Strategy.from_url(
url, url,
livecheck_strategy: livecheck_strategy, livecheck_strategy: livecheck_strategy,