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