livecheck: allow custom url in extract_plist strategy
This commit is contained in:
parent
fe853fcb9e
commit
916c980676
@ -87,12 +87,13 @@ module Homebrew
|
|||||||
sig {
|
sig {
|
||||||
params(
|
params(
|
||||||
cask: Cask::Cask,
|
cask: Cask::Cask,
|
||||||
|
url: T.nilable(String),
|
||||||
regex: T.nilable(Regexp),
|
regex: T.nilable(Regexp),
|
||||||
_unused: T.nilable(T::Hash[Symbol, T.untyped]),
|
_unused: T.nilable(T::Hash[Symbol, T.untyped]),
|
||||||
block: T.untyped,
|
block: T.untyped,
|
||||||
).returns(T::Hash[Symbol, T.untyped])
|
).returns(T::Hash[Symbol, T.untyped])
|
||||||
}
|
}
|
||||||
def self.find_versions(cask:, regex: nil, **_unused, &block)
|
def self.find_versions(cask:, url: nil, regex: nil, **_unused, &block)
|
||||||
if regex.present? && block.blank?
|
if regex.present? && block.blank?
|
||||||
raise ArgumentError, "#{T.must(name).demodulize} only supports a regex when using a `strategy` block"
|
raise ArgumentError, "#{T.must(name).demodulize} only supports a regex when using a `strategy` block"
|
||||||
end
|
end
|
||||||
@ -100,7 +101,16 @@ module Homebrew
|
|||||||
|
|
||||||
match_data = { matches: {}, regex: regex }
|
match_data = { matches: {}, regex: regex }
|
||||||
|
|
||||||
unversioned_cask_checker = UnversionedCaskChecker.new(cask)
|
if url && url != cask.url.to_s
|
||||||
|
cask_object_for_livecheck = Cask::Cask.new("livecheck-cask", config: cask.config) do
|
||||||
|
url url.to_s
|
||||||
|
end
|
||||||
|
|
||||||
|
unversioned_cask_checker = UnversionedCaskChecker.new(cask, livecheck_url: cask_object_for_livecheck)
|
||||||
|
else
|
||||||
|
unversioned_cask_checker = UnversionedCaskChecker.new(cask)
|
||||||
|
end
|
||||||
|
|
||||||
items = unversioned_cask_checker.all_versions.transform_values { |v| Item.new(bundle_version: v) }
|
items = unversioned_cask_checker.all_versions.transform_values { |v| Item.new(bundle_version: v) }
|
||||||
|
|
||||||
versions_from_items(items, regex, &block).each do |version_text|
|
versions_from_items(items, regex, &block).each do |version_text|
|
||||||
|
|||||||
@ -15,15 +15,21 @@ module Homebrew
|
|||||||
|
|
||||||
sig { returns(Cask::Cask) }
|
sig { returns(Cask::Cask) }
|
||||||
attr_reader :cask
|
attr_reader :cask
|
||||||
|
attr_reader :livecheck_url
|
||||||
|
|
||||||
sig { params(cask: Cask::Cask).void }
|
sig { params(cask: Cask::Cask, livecheck_url: T.nilable(Cask::Cask)).void }
|
||||||
def initialize(cask)
|
def initialize(cask, livecheck_url: nil)
|
||||||
@cask = cask
|
@cask = cask
|
||||||
|
@livecheck_url = livecheck_url
|
||||||
end
|
end
|
||||||
|
|
||||||
sig { returns(Cask::Installer) }
|
sig { returns(Cask::Installer) }
|
||||||
def installer
|
def installer
|
||||||
@installer ||= Cask::Installer.new(cask, verify_download_integrity: false)
|
@installer ||= if livecheck_url
|
||||||
|
Cask::Installer.new(livecheck_url, verify_download_integrity: false)
|
||||||
|
else
|
||||||
|
Cask::Installer.new(cask, verify_download_integrity: false)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
sig { returns(T::Array[Cask::Artifact::App]) }
|
sig { returns(T::Array[Cask::Artifact::App]) }
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user