Enable use of latest formula version in resource livecheck URLs

This commit is contained in:
Nanda H Krishna 2022-12-18 18:11:51 -05:00
parent 884c4bec14
commit f2fbbfe70c
No known key found for this signature in database
GPG Key ID: 067E5FCD58ADF3AA
2 changed files with 19 additions and 10 deletions

View File

@ -142,6 +142,13 @@ class Livecheck
end
end
# Returns a placeholder string that will be replaced with a formula's latest
# version in livecheck URLs for its resources.
# @return String
def latest_version
"<FORMULA_LATEST_VERSION>"
end
delegate version: :@package_or_resource
delegate arch: :@package_or_resource
private :version, :arch

View File

@ -295,6 +295,7 @@ module Homebrew
else
res_version_info = resource_version(
resource,
latest.to_s,
json: json,
debug: debug,
quiet: quiet,
@ -836,15 +837,17 @@ module Homebrew
# version information. Returns nil if a latest version couldn't be found.
sig {
params(
resource: Resource,
json: T::Boolean,
debug: T::Boolean,
quiet: T::Boolean,
verbose: T::Boolean,
resource: Resource,
formula_latest: String,
json: T::Boolean,
debug: T::Boolean,
quiet: T::Boolean,
verbose: T::Boolean,
).returns(Hash)
}
def resource_version(
resource,
formula_latest,
json: false,
debug: false,
quiet: false,
@ -874,12 +877,11 @@ module Homebrew
checked_urls = []
# rubocop:disable Metrics/BlockLength
urls.each_with_index do |original_url, i|
url = original_url.gsub(/<FORMULA_LATEST_VERSION>/, formula_latest)
# Only preprocess the URL when it's appropriate
url = if STRATEGY_SYMBOLS_TO_SKIP_PREPROCESS_URL.include?(livecheck_strategy)
original_url
else
preprocess_url(original_url)
end
url = preprocess_url(url) unless STRATEGY_SYMBOLS_TO_SKIP_PREPROCESS_URL.include?(livecheck_strategy)
next if checked_urls.include?(url)
strategies = Strategy.from_url(