diff options
| author | Markus Reiter | 2017-08-04 16:24:29 +0200 |
|---|---|---|
| committer | Markus Reiter | 2017-08-07 21:31:17 +0200 |
| commit | dc5a2c1764b1da3cfa85d8910338eb72cd4da96c (patch) | |
| tree | c8acbd7b6986db02f8f49b4116fe4f3d594f3d65 /Library/Homebrew/utils/curl.rb | |
| parent | fb59e79689b15d71e6090d0f6f1f39f4d69800b1 (diff) | |
| download | brew-dc5a2c1764b1da3cfa85d8910338eb72cd4da96c.tar.bz2 | |
Simplify CurlDownloadStrategy.
Diffstat (limited to 'Library/Homebrew/utils/curl.rb')
| -rw-r--r-- | Library/Homebrew/utils/curl.rb | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/Library/Homebrew/utils/curl.rb b/Library/Homebrew/utils/curl.rb index 5a40ae846..6aaf9be0c 100644 --- a/Library/Homebrew/utils/curl.rb +++ b/Library/Homebrew/utils/curl.rb @@ -1,42 +1,46 @@ require "pathname" require "open3" -def curl_args(options = {}) +def curl_executable 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? + return curl if curl.executable? + raise "#{curl} is not executable" +end +def curl_args(*extra_args, show_output: false, user_agent: :default) args = [ - curl.to_s, - "--remote-time", - "--location", + curl_executable.to_s, + "--fail", + "--show-error", ] - case options[:user_agent] - when :browser - args << "--user-agent" << HOMEBREW_USER_AGENT_FAKE_SAFARI + args << "--user-agent" << case user_agent + when :browser, :fake + HOMEBREW_USER_AGENT_FAKE_SAFARI + when :default + HOMEBREW_USER_AGENT_CURL else - args << "--user-agent" << HOMEBREW_USER_AGENT_CURL + user_agent end - unless options[:show_output] + unless 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 + args + extra_args end def curl(*args) - safe_system(*curl_args(extra_args: args)) + safe_system(*curl_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 +def curl_download(*args, to: nil, **options) + curl(*args, "--location", "--remote-time", "--continue-at", "-", "--output", to, **options) +end + +def curl_output(*args, **options) + Open3.capture3(*curl_args(*args, show_output: true, **options)) end |
