ApacheDownloadStrategy: fall back to specified mirrors

Fixes Homebrew/homebrew#24157.
This commit is contained in:
Jack Nagel 2013-11-26 22:56:03 -06:00
parent 4584407425
commit ea32b5166c

View File

@ -236,13 +236,16 @@ class CurlApacheMirrorDownloadStrategy < CurlDownloadStrategy
end end
def _fetch def _fetch
mirrors = Utils::JSON.load(apache_mirrors) return super if @tried_apache_mirror
url = mirrors.fetch('preferred') + mirrors.fetch('path_info') @tried_apache_mirror = true
ohai "Best Mirror #{url}" mirrors = Utils::JSON.load(apache_mirrors)
curl url, '-C', downloaded_size, '-o', temporary_path @url = mirrors.fetch('preferred') + mirrors.fetch('path_info')
ohai "Best Mirror #{@url}"
super
rescue IndexError, Utils::JSON::Error rescue IndexError, Utils::JSON::Error
raise "Couldn't determine mirror. Try again later." raise CurlDownloadStrategyError, "Couldn't determine mirror, try again later."
end end
end end