diff options
| author | Mike McQuaid | 2016-05-20 11:00:51 +0100 |
|---|---|---|
| committer | Mike McQuaid | 2016-05-20 11:00:51 +0100 |
| commit | 0123e04faed98c06dc395a2ec0d7fa0de2f56d5d (patch) | |
| tree | caac09be6ea7a602b9ac386b0451138e3b5bc87b /Library/Homebrew | |
| parent | a0d008af77785071ffba27dd995e5c794042f649 (diff) | |
| download | brew-0123e04faed98c06dc395a2ec0d7fa0de2f56d5d.tar.bz2 | |
mirror: add command to mirror to Bintray. (#263)
Used for uploading imagemagick 6.9.4-3.
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/dev-cmd/mirror.rb | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Library/Homebrew/dev-cmd/mirror.rb b/Library/Homebrew/dev-cmd/mirror.rb new file mode 100644 index 000000000..5ffaa7607 --- /dev/null +++ b/Library/Homebrew/dev-cmd/mirror.rb @@ -0,0 +1,49 @@ +# Mirrors the stable URL for a formula on Bintray. +# +# Usage: brew mirror <formula> [<formula> ...] + +module Homebrew + def mirror + if ARGV.named.empty? + odie "This command requires at least formula argument!" + end + + bintray_user = ENV["BINTRAY_USER"] + bintray_key = ENV["BINTRAY_KEY"] + if !bintray_user || !bintray_key + raise "Missing BINTRAY_USER or BINTRAY_KEY variables!" + end + + ARGV.formulae.each do |f| + bintray_package = Utils::Bottles::Bintray.package f.name + bintray_repo_url = "https://api.bintray.com/packages/homebrew/mirror" + package_url = "#{bintray_repo_url}/#{bintray_package}" + + unless system "curl", "--silent", "--fail", "--output", "/dev/null", package_url + package_blob = <<-EOS.undent + {"name": "#{bintray_package}", + "public_download_numbers": true, + "public_stats": true} + EOS + curl "--silent", "--fail", "-u#{bintray_user}:#{bintray_key}", + "-H", "Content-Type: application/json", + "-d", package_blob, bintray_repo_url + puts + end + + download = f.fetch + f.verify_download_integrity(download) + filename = download.basename + destination_url = "https://dl.bintray.com/homebrew/mirror/#{filename}" + + ohai "Uploading to #{destination_url}" + content_url = "https://api.bintray.com/content/homebrew/mirror" + content_url += "/#{bintray_package}/#{f.pkg_version}/#{filename}" + content_url += "?publish=1" + curl "--silent", "--fail", "-u#{bintray_user}:#{bintray_key}", + "-T", download, content_url + puts + ohai "Mirrored #{filename}!" + end + end +end |
