Merge pull request #14262 from nandahkrishna/resource-livecheck-formula-latest
Enable use of latest formula version in resource `livecheck` URLs
This commit is contained in:
commit
30c3fc546f
@ -3278,6 +3278,7 @@ class Formula
|
||||
def livecheck(&block)
|
||||
return @livecheck unless block
|
||||
|
||||
include Homebrew::Livecheck::Constants
|
||||
@livecheckable = true
|
||||
@livecheck.instance_eval(&block)
|
||||
end
|
||||
|
@ -1,6 +1,8 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "livecheck/constants"
|
||||
|
||||
# The {Livecheck} class implements the DSL methods used in a formula's, cask's
|
||||
# or resource's `livecheck` block and stores related instance variables. Most
|
||||
# of these methods also return the related instance variable when no argument
|
||||
|
14
Library/Homebrew/livecheck/constants.rb
Normal file
14
Library/Homebrew/livecheck/constants.rb
Normal file
@ -0,0 +1,14 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Homebrew
|
||||
module Livecheck
|
||||
# The {Constants} module provides constants that are intended to be used
|
||||
# in `livecheck` block values (e.g. `url`, `regex`).
|
||||
module Constants
|
||||
# A placeholder string used in resource `livecheck` block URLs that will
|
||||
# be replaced with the latest version from the main formula check.
|
||||
LATEST_VERSION = "<FORMULA_LATEST_VERSION>"
|
||||
end
|
||||
end
|
||||
end
|
@ -1,6 +1,7 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "livecheck/constants"
|
||||
require "livecheck/error"
|
||||
require "livecheck/livecheck_version"
|
||||
require "livecheck/skip_conditions"
|
||||
@ -295,6 +296,7 @@ module Homebrew
|
||||
else
|
||||
res_version_info = resource_version(
|
||||
resource,
|
||||
latest.to_s,
|
||||
json: json,
|
||||
debug: debug,
|
||||
quiet: quiet,
|
||||
@ -836,15 +838,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 +878,11 @@ module Homebrew
|
||||
checked_urls = []
|
||||
# rubocop:disable Metrics/BlockLength
|
||||
urls.each_with_index do |original_url, i|
|
||||
url = original_url.gsub(Constants::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(
|
||||
|
Loading…
x
Reference in New Issue
Block a user