curl: make curl_args more configurable.
Allow configuring whether output should be shown or the default the default user agent is used.
This commit is contained in:
parent
59180ec370
commit
e6fb3c3114
@ -27,14 +27,6 @@ RUBY_BIN = RUBY_PATH.dirname
|
||||
HOMEBREW_USER_AGENT_CURL = ENV["HOMEBREW_USER_AGENT_CURL"]
|
||||
HOMEBREW_USER_AGENT_RUBY = "#{ENV["HOMEBREW_USER_AGENT"]} ruby/#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}".freeze
|
||||
|
||||
HOMEBREW_CURL_ARGS = [
|
||||
"--fail",
|
||||
"--progress-bar",
|
||||
"--remote-time",
|
||||
"--location",
|
||||
"--user-agent", HOMEBREW_USER_AGENT_CURL
|
||||
].freeze
|
||||
|
||||
require "tap_constants"
|
||||
|
||||
module Homebrew
|
||||
|
||||
@ -1,27 +1,38 @@
|
||||
require "pathname"
|
||||
require "open3"
|
||||
|
||||
def curl_args(extra_args = [])
|
||||
def curl_args(options = {})
|
||||
curl = Pathname.new ENV["HOMEBREW_CURL"]
|
||||
curl = Pathname.new "/usr/bin/curl" unless curl.exist?
|
||||
raise "#{curl} is not executable" unless curl.exist? && curl.executable?
|
||||
|
||||
flags = HOMEBREW_CURL_ARGS
|
||||
flags -= ["--progress-bar"] if ARGV.verbose?
|
||||
args = [
|
||||
curl.to_s,
|
||||
"--remote-time",
|
||||
"--location",
|
||||
]
|
||||
|
||||
args = [curl.to_s] + flags + extra_args
|
||||
unless options[:default_user_agent]
|
||||
args << "--user-agent" << HOMEBREW_USER_AGENT_CURL
|
||||
end
|
||||
|
||||
unless options[:show_output]
|
||||
args << "--progress-bar" unless ARGV.verbose?
|
||||
args << "--verbose" if ENV["HOMEBREW_CURL_VERBOSE"]
|
||||
args << "--fail"
|
||||
args << "--silent" if !$stdout.tty? || ENV["TRAVIS"]
|
||||
end
|
||||
|
||||
args += options[:extra_args] if options[:extra_args]
|
||||
args
|
||||
end
|
||||
|
||||
def curl(*args)
|
||||
safe_system(*curl_args(args))
|
||||
safe_system(*curl_args(extra_args: args))
|
||||
end
|
||||
|
||||
def curl_output(*args)
|
||||
curl_args = curl_args(args)
|
||||
curl_args -= ["--fail", "--silent"]
|
||||
curl_args = curl_args(extra_args: args, show_output: true)
|
||||
Open3.popen3(*curl_args) do |_, stdout, stderr, wait_thread|
|
||||
[stdout.read, stderr.read, wait_thread.value]
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user