 e7a81caaf4
			
		
	
	
		e7a81caaf4
		
	
	
	
	
		
			
			This allows us to detect if homepages such as e.g. `aiccu` which blocks `curl` are up or not.
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "pathname"
 | |
| require "open3"
 | |
| 
 | |
| 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?
 | |
| 
 | |
|   args = [
 | |
|     curl.to_s,
 | |
|     "--remote-time",
 | |
|     "--location",
 | |
|   ]
 | |
| 
 | |
|   case options[:user_agent]
 | |
|   when :browser
 | |
|     args << "--user-agent" << HOMEBREW_USER_AGENT_FAKE_SAFARI
 | |
|   else
 | |
|     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(extra_args: args))
 | |
| end
 | |
| 
 | |
| def curl_output(*args)
 | |
|   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
 | |
| end
 |