diff --git a/Library/Homebrew/dev-cmd/pull.rb b/Library/Homebrew/dev-cmd/pull.rb index 98a62e5780..1bc87add1e 100644 --- a/Library/Homebrew/dev-cmd/pull.rb +++ b/Library/Homebrew/dev-cmd/pull.rb @@ -155,6 +155,13 @@ module Homebrew next end + if f.stable + stable_urls = [f.stable.url] + f.stable.mirrors + stable_urls.grep(%r{^https://dl.bintray.com/homebrew/mirror/}) do |mirror_url| + check_bintray_mirror(f.full_name, mirror_url) + end + end + if ARGV.include? "--bottle" if f.bottle_unneeded? ohai "#{f}: skipping unneeded bottle." @@ -588,4 +595,12 @@ module Homebrew end end end + + def check_bintray_mirror(name, url) + headers = curl_output("--connect-timeout", "15", "--head", url)[0] + status_code = headers.scan(%r{^HTTP\/.* (\d+)}).last.first + return if status_code.start_with?("3") + opoo "The Bintray mirror #{url} is not reachable (HTTP status code #{status_code})." + opoo "Do you need to upload it with `brew mirror #{name}`?" + end end