fix: allow sparkle without a macOS version

This commit is contained in:
Sean Molenaar 2022-11-01 20:47:51 +01:00
parent eea61a0ae9
commit 94c0d8917e
No known key found for this signature in database
GPG Key ID: AAC1C7E1A4696A9A
2 changed files with 12 additions and 5 deletions

View File

@ -550,7 +550,7 @@ module Cask
return unless cask.livecheckable? return unless cask.livecheckable?
return unless cask.livecheck.strategy == :sparkle return unless cask.livecheck.strategy == :sparkle
out, _, status = curl_output(cask.livecheck.url) out, _, status = curl_output("--fail", "--silent", "--location", cask.livecheck.url)
return unless status.success? return unless status.success?
require "rexml/document" require "rexml/document"
@ -563,14 +563,19 @@ module Cask
return if xml.blank? return if xml.blank?
item = xml.get_elements("//rss//channel//item").first item = xml.elements["//rss//channel//item"]
return if item.blank? return if item.blank?
min_os = item.elements["sparkle:minimumSystemVersion"].text min_os = item.elements["sparkle:minimumSystemVersion"]&.text
return if min_os.blank? return if min_os.blank?
min_os_string = OS::Mac::Version.new(min_os).strip_patch begin
cask_min_os = cask.depends_on.macos.version min_os_string = OS::Mac::Version.new(min_os).strip_patch
rescue MacOSVersionError
return
end
cask_min_os = cask.depends_on.macos&.version
return if cask_min_os == min_os_string return if cask_min_os == min_os_string

View File

@ -11,6 +11,7 @@ module Cask
# #
# @api private # @api private
class DependsOn < SimpleDelegator class DependsOn < SimpleDelegator
extend T::Sig
VALID_KEYS = Set.new([ VALID_KEYS = Set.new([
:formula, :formula,
:cask, :cask,
@ -49,6 +50,7 @@ module Cask
@cask.concat(args) @cask.concat(args)
end end
sig { params(args: String).returns(T.nilable(MacOSRequirement)) }
def macos=(*args) def macos=(*args)
raise "Only a single 'depends_on macos' is allowed." if defined?(@macos) raise "Only a single 'depends_on macos' is allowed." if defined?(@macos)