diff --git a/Library/Homebrew/cask/audit.rb b/Library/Homebrew/cask/audit.rb index 3f714edc66..c89aa6f06d 100644 --- a/Library/Homebrew/cask/audit.rb +++ b/Library/Homebrew/cask/audit.rb @@ -550,7 +550,7 @@ module Cask return unless cask.livecheckable? 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? require "rexml/document" @@ -563,14 +563,19 @@ module Cask return if xml.blank? - item = xml.get_elements("//rss//channel//item").first + item = xml.elements["//rss//channel//item"] return if item.blank? - min_os = item.elements["sparkle:minimumSystemVersion"].text + min_os = item.elements["sparkle:minimumSystemVersion"]&.text return if min_os.blank? - min_os_string = OS::Mac::Version.new(min_os).strip_patch - cask_min_os = cask.depends_on.macos.version + begin + 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 diff --git a/Library/Homebrew/cask/dsl/depends_on.rb b/Library/Homebrew/cask/dsl/depends_on.rb index 1d4e3a2448..c4b1af7207 100644 --- a/Library/Homebrew/cask/dsl/depends_on.rb +++ b/Library/Homebrew/cask/dsl/depends_on.rb @@ -11,6 +11,7 @@ module Cask # # @api private class DependsOn < SimpleDelegator + extend T::Sig VALID_KEYS = Set.new([ :formula, :cask, @@ -49,6 +50,7 @@ module Cask @cask.concat(args) end + sig { params(args: String).returns(T.nilable(MacOSRequirement)) } def macos=(*args) raise "Only a single 'depends_on macos' is allowed." if defined?(@macos)