diff --git a/Library/Homebrew/cask/audit.rb b/Library/Homebrew/cask/audit.rb index 0c3cf7773b..b1db10e800 100644 --- a/Library/Homebrew/cask/audit.rb +++ b/Library/Homebrew/cask/audit.rb @@ -301,11 +301,16 @@ module Cask def check_appcast_contains_version return unless check_appcast? return if cask.appcast.to_s.empty? + return if cask.appcast.configuration == :no_check appcast_stanza = cask.appcast.to_s - appcast_contents, = curl_output("--max-time", "5", appcast_stanza) + appcast_contents, = curl_output("-L", "--max-time", "5", appcast_stanza) version_stanza = cask.version.to_s - adjusted_version_stanza = version_stanza.split(",")[0].split("-")[0].split("_")[0] + if cask.appcast.configuration.to_s.empty? + adjusted_version_stanza = version_stanza.split(",")[0].split("-")[0].split("_")[0] + else + adjusted_version_stanza = cask.appcast.configuration + end return if appcast_contents.include? adjusted_version_stanza add_warning "appcast at URL '#{appcast_stanza}' does not contain"\ diff --git a/Library/Homebrew/cask/dsl/appcast.rb b/Library/Homebrew/cask/dsl/appcast.rb index f2296ad942..b5aa010c20 100644 --- a/Library/Homebrew/cask/dsl/appcast.rb +++ b/Library/Homebrew/cask/dsl/appcast.rb @@ -3,11 +3,21 @@ module Cask class DSL class Appcast + ATTRIBUTES = [ + :configuration, + ].freeze attr_reader :uri, :parameters + attr_reader(*ATTRIBUTES) def initialize(uri, **parameters) @uri = URI(uri) @parameters = parameters + + ATTRIBUTES.each do |attribute| + next unless parameters.key?(attribute) + + instance_variable_set("@#{attribute}", parameters[attribute]) + end end def to_yaml