Skip to content
Snippets Groups Projects
Commit e6fb3c31 authored by Mike McQuaid's avatar Mike McQuaid
Browse files

curl: make curl_args more configurable.

Allow configuring whether output should be shown or the default the
default user agent is used.
parent 59180ec3
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
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
args << "--verbose" if ENV["HOMEBREW_CURL_VERBOSE"]
args << "--silent" if !$stdout.tty? || ENV["TRAVIS"]
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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment