aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/dev-cmd
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/dev-cmd')
-rw-r--r--Library/Homebrew/dev-cmd/audit.rb3
-rw-r--r--Library/Homebrew/dev-cmd/pull.rb15
2 files changed, 18 insertions, 0 deletions
diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb
index 457df5fc7..cd55cdf4c 100644
--- a/Library/Homebrew/dev-cmd/audit.rb
+++ b/Library/Homebrew/dev-cmd/audit.rb
@@ -1565,6 +1565,9 @@ class ResourceAuditor
strategy = DownloadStrategyDetector.detect(url, using)
if strategy <= CurlDownloadStrategy && !url.start_with?("file")
+ # A `brew mirror`'ed URL is usually not yet reachable at the time of
+ # pull request.
+ next if url =~ %r{^https://dl.bintray.com/homebrew/mirror/}
if http_content_problem = FormulaAuditor.check_http_content(url)
problem http_content_problem
end
diff --git a/Library/Homebrew/dev-cmd/pull.rb b/Library/Homebrew/dev-cmd/pull.rb
index 98a62e578..1bc87add1 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