From 0123e04faed98c06dc395a2ec0d7fa0de2f56d5d Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Fri, 20 May 2016 11:00:51 +0100 Subject: [PATCH] mirror: add command to mirror to Bintray. (#263) Used for uploading imagemagick 6.9.4-3. --- Library/Homebrew/dev-cmd/mirror.rb | 49 ++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Library/Homebrew/dev-cmd/mirror.rb diff --git a/Library/Homebrew/dev-cmd/mirror.rb b/Library/Homebrew/dev-cmd/mirror.rb new file mode 100644 index 0000000000..5ffaa7607c --- /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 [ ...] + +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