Merge pull request #14795 from Bo98/cask-api-url_specs

cask: support url specs in API
This commit is contained in:
Mike McQuaid 2023-02-24 15:07:20 +00:00 committed by GitHub
commit 3573cf074f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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))
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,
"full_token" => full_name,
@ -285,6 +293,7 @@ module Cask
"desc" => desc,
"homepage" => homepage,
"url" => url,
"url_specs" => url_specs,
"appcast" => appcast,
"version" => version,
"versions" => os_versions,

View File

@ -246,6 +246,12 @@ module Cask
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,
tap: tap,
source: cask_source,
@ -261,7 +267,7 @@ module Cask
sha256 json_cask[:sha256]
end
url json_cask[:url]
url json_cask[:url], **json_cask.fetch(:url_specs, {})
appcast json_cask[:appcast] if json_cask[:appcast].present?
json_cask[:name].each do |cask_name|
name cask_name

View File

@ -101,6 +101,8 @@ describe Cask::Cmd::List, :cask do
"desc": null,
"homepage": "https://brew.sh/",
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip",
"url_specs": {
},
"appcast": null,
"version": "1.2.3",
"versions": {
@ -146,6 +148,8 @@ describe Cask::Cmd::List, :cask do
"desc": "BitTorrent client",
"homepage": "https://transmissionbt.com/",
"url": "file://#{TEST_FIXTURE_DIR}/cask/transmission-2.61.dmg",
"url_specs": {
},
"appcast": null,
"version": "2.61",
"versions": {
@ -184,6 +188,8 @@ describe Cask::Cmd::List, :cask do
"desc": null,
"homepage": "https://brew.sh/",
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin-arm64/1.2.3/arm.zip",
"url_specs": {
},
"appcast": null,
"version": "1.2.3",
"versions": {
@ -225,6 +231,8 @@ describe Cask::Cmd::List, :cask do
"desc": null,
"homepage": "https://brew.sh/",
"url": "https://brew.sh/ThirdParty.dmg",
"url_specs": {
},
"appcast": null,
"version": "1.2.3",
"versions": {
@ -263,6 +271,8 @@ describe Cask::Cmd::List, :cask do
"desc": null,
"homepage": "https://brew.sh/",
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip",
"url_specs": {
},
"appcast": null,
"version": "1.2.3",
"versions": {