Skip to content
Snippets Groups Projects
Commit ff7c8865 authored by Charlie Sharpsteen's avatar Charlie Sharpsteen
Browse files

exceptions.rb: Add DownloadError

`DownloadError` is an exception that download stratigies can throw to indicate
that a fetch was incomplete due to a failure in communication.

The `curl` method in `utils.rb` has been upgraded to throw a `DownloadError` if
something bad happens to `curl` execution.
parent 560fb2db
No related branches found
No related tags found
No related merge requests found
......@@ -112,3 +112,17 @@ class BuildError < Homebrew::InstallationError
@command == './configure'
end
end
class DownloadError < RuntimeError
attr :command
attr :args
attr :exit_status
def initialize cmd, args, status
@command = cmd
@args = args
args.map!{ |arg| arg.to_s.gsub " ", "\\ " }
super "#{cmd} #{args.join ' '}\nDownloader failed with exit status #{status}"
@exit_status = status
end
end
require 'pathname'
require 'exceptions'
class Tty
class <<self
......@@ -104,10 +105,14 @@ def quiet_system cmd, *args
end
def curl *args
curl = Pathname.new '/usr/bin/curl'
raise "#{curl} is not an executable!" unless curl.exist? and curl.executable?
args = [HOMEBREW_CURL_ARGS, HOMEBREW_USER_AGENT, *args]
# See https://github.com/mxcl/homebrew/issues/6103
args << "--insecure" if MacOS.version < 10.6
safe_system '/usr/bin/curl', HOMEBREW_CURL_ARGS, HOMEBREW_USER_AGENT, *args unless args.empty?
raise DownloadError.new curl, args, $? unless Homebrew.system curl, *args
end
def puts_columns items, star_items=[]
......
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