mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Phase out using cgi
library
This commit is contained in:
parent
75a5f03f75
commit
923be69785
@ -11,8 +11,6 @@ require "cask/migrator"
|
|||||||
require "cask/quarantine"
|
require "cask/quarantine"
|
||||||
require "cask/tab"
|
require "cask/tab"
|
||||||
|
|
||||||
require "cgi"
|
|
||||||
|
|
||||||
module Cask
|
module Cask
|
||||||
# Installer for a {Cask}.
|
# Installer for a {Cask}.
|
||||||
class Installer
|
class Installer
|
||||||
|
@ -5,7 +5,6 @@ require "json"
|
|||||||
require "time"
|
require "time"
|
||||||
require "unpack_strategy"
|
require "unpack_strategy"
|
||||||
require "lazy_object"
|
require "lazy_object"
|
||||||
require "cgi"
|
|
||||||
require "lock_file"
|
require "lock_file"
|
||||||
require "system_command"
|
require "system_command"
|
||||||
|
|
||||||
@ -384,9 +383,12 @@ class AbstractFileDownloadStrategy < AbstractDownloadStrategy
|
|||||||
if url.match?(URI::DEFAULT_PARSER.make_regexp)
|
if url.match?(URI::DEFAULT_PARSER.make_regexp)
|
||||||
uri = URI(url)
|
uri = URI(url)
|
||||||
|
|
||||||
if uri.query
|
if (uri_query = uri.query.presence)
|
||||||
query_params = CGI.parse(uri.query)
|
URI.decode_www_form(uri_query).each do |key, param|
|
||||||
query_params["response-content-disposition"].each do |param|
|
components[:query] << param if search_query
|
||||||
|
|
||||||
|
next if key != "response-content-disposition"
|
||||||
|
|
||||||
query_basename = param[/attachment;\s*filename=(["']?)(.+)\1/i, 2]
|
query_basename = param[/attachment;\s*filename=(["']?)(.+)\1/i, 2]
|
||||||
return File.basename(query_basename) if query_basename
|
return File.basename(query_basename) if query_basename
|
||||||
end
|
end
|
||||||
@ -397,10 +399,6 @@ class AbstractFileDownloadStrategy < AbstractDownloadStrategy
|
|||||||
URI::DEFAULT_PARSER.unescape(part).presence
|
URI::DEFAULT_PARSER.unescape(part).presence
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if search_query && (uri_query = uri.query.presence)
|
|
||||||
components[:query] = URI.decode_www_form(uri_query).map { _2 }
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
components[:path] = [url]
|
components[:path] = [url]
|
||||||
end
|
end
|
||||||
|
@ -346,7 +346,8 @@ class Version
|
|||||||
|
|
||||||
sig { params(spec: T.any(String, Pathname), detected_from_url: T::Boolean).returns(Version) }
|
sig { params(spec: T.any(String, Pathname), detected_from_url: T::Boolean).returns(Version) }
|
||||||
def self.parse(spec, detected_from_url: false)
|
def self.parse(spec, detected_from_url: false)
|
||||||
spec = CGI.unescape(spec.to_s) if detected_from_url
|
# This type of full-URL decoding is not technically correct but we only need a rough decode for version parsing.
|
||||||
|
spec = URI.decode_www_form_component(spec.to_s) if detected_from_url
|
||||||
|
|
||||||
spec = Pathname(spec)
|
spec = Pathname(spec)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user