Merge pull request #14795 from Bo98/cask-api-url_specs
cask: support url specs in API
This commit is contained in:
		
						commit
						3573cf074f
					
				@ -277,6 +277,14 @@ module Cask
 | 
				
			|||||||
        return api_to_local_hash(Homebrew::API.merge_variations(json_cask))
 | 
					        return api_to_local_hash(Homebrew::API.merge_variations(json_cask))
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      url_specs = url.specs.dup
 | 
				
			||||||
 | 
					      case url_specs[:user_agent]
 | 
				
			||||||
 | 
					      when :default
 | 
				
			||||||
 | 
					        url_specs.delete(:user_agent)
 | 
				
			||||||
 | 
					      when Symbol
 | 
				
			||||||
 | 
					        url_specs[:user_agent] = ":#{url_specs[:user_agent]}"
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        "token"                => token,
 | 
					        "token"                => token,
 | 
				
			||||||
        "full_token"           => full_name,
 | 
					        "full_token"           => full_name,
 | 
				
			||||||
@ -285,6 +293,7 @@ module Cask
 | 
				
			|||||||
        "desc"                 => desc,
 | 
					        "desc"                 => desc,
 | 
				
			||||||
        "homepage"             => homepage,
 | 
					        "homepage"             => homepage,
 | 
				
			||||||
        "url"                  => url,
 | 
					        "url"                  => url,
 | 
				
			||||||
 | 
					        "url_specs"            => url_specs,
 | 
				
			||||||
        "appcast"              => appcast,
 | 
					        "appcast"              => appcast,
 | 
				
			||||||
        "version"              => version,
 | 
					        "version"              => version,
 | 
				
			||||||
        "versions"             => os_versions,
 | 
					        "versions"             => os_versions,
 | 
				
			||||||
 | 
				
			|||||||
@ -246,6 +246,12 @@ module Cask
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        tap = Tap.fetch(json_cask[:tap]) if json_cask[:tap].to_s.include?("/")
 | 
					        tap = Tap.fetch(json_cask[:tap]) if json_cask[:tap].to_s.include?("/")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        user_agent = json_cask.dig(:url_specs, :user_agent)
 | 
				
			||||||
 | 
					        json_cask[:url_specs][:user_agent] = user_agent[1..].to_sym if user_agent && user_agent[0] == ":"
 | 
				
			||||||
 | 
					        if (using = json_cask.dig(:url_specs, :using))
 | 
				
			||||||
 | 
					          json_cask[:url_specs][:using] = using.to_sym
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Cask.new(token,
 | 
					        Cask.new(token,
 | 
				
			||||||
                 tap:             tap,
 | 
					                 tap:             tap,
 | 
				
			||||||
                 source:          cask_source,
 | 
					                 source:          cask_source,
 | 
				
			||||||
@ -261,7 +267,7 @@ module Cask
 | 
				
			|||||||
            sha256 json_cask[:sha256]
 | 
					            sha256 json_cask[:sha256]
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          url json_cask[:url]
 | 
					          url json_cask[:url], **json_cask.fetch(:url_specs, {})
 | 
				
			||||||
          appcast json_cask[:appcast] if json_cask[:appcast].present?
 | 
					          appcast json_cask[:appcast] if json_cask[:appcast].present?
 | 
				
			||||||
          json_cask[:name].each do |cask_name|
 | 
					          json_cask[:name].each do |cask_name|
 | 
				
			||||||
            name cask_name
 | 
					            name cask_name
 | 
				
			||||||
 | 
				
			|||||||
@ -101,6 +101,8 @@ describe Cask::Cmd::List, :cask do
 | 
				
			|||||||
            "desc": null,
 | 
					            "desc": null,
 | 
				
			||||||
            "homepage": "https://brew.sh/",
 | 
					            "homepage": "https://brew.sh/",
 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip",
 | 
					            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip",
 | 
				
			||||||
 | 
					            "url_specs": {
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
            "appcast": null,
 | 
					            "appcast": null,
 | 
				
			||||||
            "version": "1.2.3",
 | 
					            "version": "1.2.3",
 | 
				
			||||||
            "versions": {
 | 
					            "versions": {
 | 
				
			||||||
@ -146,6 +148,8 @@ describe Cask::Cmd::List, :cask do
 | 
				
			|||||||
            "desc": "BitTorrent client",
 | 
					            "desc": "BitTorrent client",
 | 
				
			||||||
            "homepage": "https://transmissionbt.com/",
 | 
					            "homepage": "https://transmissionbt.com/",
 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/transmission-2.61.dmg",
 | 
					            "url": "file://#{TEST_FIXTURE_DIR}/cask/transmission-2.61.dmg",
 | 
				
			||||||
 | 
					            "url_specs": {
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
            "appcast": null,
 | 
					            "appcast": null,
 | 
				
			||||||
            "version": "2.61",
 | 
					            "version": "2.61",
 | 
				
			||||||
            "versions": {
 | 
					            "versions": {
 | 
				
			||||||
@ -184,6 +188,8 @@ describe Cask::Cmd::List, :cask do
 | 
				
			|||||||
            "desc": null,
 | 
					            "desc": null,
 | 
				
			||||||
            "homepage": "https://brew.sh/",
 | 
					            "homepage": "https://brew.sh/",
 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin-arm64/1.2.3/arm.zip",
 | 
					            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin-arm64/1.2.3/arm.zip",
 | 
				
			||||||
 | 
					            "url_specs": {
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
            "appcast": null,
 | 
					            "appcast": null,
 | 
				
			||||||
            "version": "1.2.3",
 | 
					            "version": "1.2.3",
 | 
				
			||||||
            "versions": {
 | 
					            "versions": {
 | 
				
			||||||
@ -225,6 +231,8 @@ describe Cask::Cmd::List, :cask do
 | 
				
			|||||||
            "desc": null,
 | 
					            "desc": null,
 | 
				
			||||||
            "homepage": "https://brew.sh/",
 | 
					            "homepage": "https://brew.sh/",
 | 
				
			||||||
            "url": "https://brew.sh/ThirdParty.dmg",
 | 
					            "url": "https://brew.sh/ThirdParty.dmg",
 | 
				
			||||||
 | 
					            "url_specs": {
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
            "appcast": null,
 | 
					            "appcast": null,
 | 
				
			||||||
            "version": "1.2.3",
 | 
					            "version": "1.2.3",
 | 
				
			||||||
            "versions": {
 | 
					            "versions": {
 | 
				
			||||||
@ -263,6 +271,8 @@ describe Cask::Cmd::List, :cask do
 | 
				
			|||||||
            "desc": null,
 | 
					            "desc": null,
 | 
				
			||||||
            "homepage": "https://brew.sh/",
 | 
					            "homepage": "https://brew.sh/",
 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip",
 | 
					            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip",
 | 
				
			||||||
 | 
					            "url_specs": {
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
            "appcast": null,
 | 
					            "appcast": null,
 | 
				
			||||||
            "version": "1.2.3",
 | 
					            "version": "1.2.3",
 | 
				
			||||||
            "versions": {
 | 
					            "versions": {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user