cask: support url specs in API

This commit is contained in:
Bo Anderson 2023-02-24 13:56:46 +00:00
parent 041545db2c
commit aebc125e9c
No known key found for this signature in database
GPG Key ID: 3DB94E204E137D65
3 changed files with 26 additions and 1 deletions

View File

@ -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,

View File

@ -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

View File

@ -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": {