Merge pull request #11366 from MikeMcQuaid/delete-bintray
Delete Bintray code
This commit is contained in:
commit
2e1e08c596
@ -130,8 +130,14 @@ class Archive
|
|||||||
warn_on_error: T.nilable(T::Boolean)).void
|
warn_on_error: T.nilable(T::Boolean)).void
|
||||||
}
|
}
|
||||||
def upload_bottles(bottles_hash, warn_on_error: false)
|
def upload_bottles(bottles_hash, warn_on_error: false)
|
||||||
bottles_hash.each do |_formula_name, bottle_hash|
|
bottles_hash.each do |formula_full_name, bottle_hash|
|
||||||
directory = bottle_hash["bintray"]["repository"]
|
_, formula_tap_repo, = formula_full_name.split("/")
|
||||||
|
directory = if formula_tap_repo
|
||||||
|
"bottles-#{tap.repo}"
|
||||||
|
else
|
||||||
|
"bottles"
|
||||||
|
end
|
||||||
|
|
||||||
bottle_count = bottle_hash["bottle"]["tags"].length
|
bottle_count = bottle_hash["bottle"]["tags"].length
|
||||||
|
|
||||||
bottle_hash["bottle"]["tags"].each_value do |tag_hash|
|
bottle_hash["bottle"]["tags"].each_value do |tag_hash|
|
||||||
|
|||||||
@ -1,278 +0,0 @@
|
|||||||
# typed: false
|
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
require "utils/curl"
|
|
||||||
require "json"
|
|
||||||
|
|
||||||
# Bintray API client.
|
|
||||||
#
|
|
||||||
# @api private
|
|
||||||
class Bintray
|
|
||||||
extend T::Sig
|
|
||||||
|
|
||||||
include Context
|
|
||||||
include Utils::Curl
|
|
||||||
|
|
||||||
API_URL = "https://api.bintray.com"
|
|
||||||
URL_REGEX = %r{^https://[\w-]+\.bintray\.com/}.freeze
|
|
||||||
|
|
||||||
class Error < RuntimeError
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { returns(String) }
|
|
||||||
def inspect
|
|
||||||
"#<Bintray: org=#{@bintray_org}>"
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { params(org: T.nilable(String)).void }
|
|
||||||
def initialize(org: "homebrew")
|
|
||||||
@bintray_org = org
|
|
||||||
|
|
||||||
raise UsageError, "Must set a Bintray organisation!" unless @bintray_org
|
|
||||||
|
|
||||||
ENV["HOMEBREW_FORCE_HOMEBREW_ON_LINUX"] = "1" if @bintray_org == "homebrew" && !OS.mac?
|
|
||||||
end
|
|
||||||
|
|
||||||
def open_api(url, *args, auth: true)
|
|
||||||
if auth
|
|
||||||
raise UsageError, "HOMEBREW_BINTRAY_USER is unset." unless (user = Homebrew::EnvConfig.bintray_user)
|
|
||||||
raise UsageError, "HOMEBREW_BINTRAY_KEY is unset." unless (key = Homebrew::EnvConfig.bintray_key)
|
|
||||||
|
|
||||||
args += ["--user", "#{user}:#{key}"]
|
|
||||||
end
|
|
||||||
|
|
||||||
curl(*args, url, print_stdout: false, secrets: key)
|
|
||||||
end
|
|
||||||
|
|
||||||
sig {
|
|
||||||
params(local_file: String,
|
|
||||||
repo: String,
|
|
||||||
package: String,
|
|
||||||
version: String,
|
|
||||||
remote_file: String,
|
|
||||||
sha256: T.nilable(String),
|
|
||||||
warn_on_error: T.nilable(T::Boolean)).void
|
|
||||||
}
|
|
||||||
def upload(local_file, repo:, package:, version:, remote_file:, sha256: nil, warn_on_error: false)
|
|
||||||
unless File.exist? local_file
|
|
||||||
msg = "#{local_file} for upload doesn't exist!"
|
|
||||||
raise Error, msg unless warn_on_error
|
|
||||||
|
|
||||||
# Warn and return early here since we know this upload is going to fail.
|
|
||||||
opoo msg
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
url = "#{API_URL}/content/#{@bintray_org}/#{repo}/#{package}/#{version}/#{remote_file}"
|
|
||||||
args = ["--upload-file", local_file]
|
|
||||||
args += ["--header", "X-Checksum-Sha2: #{sha256}"] if sha256.present?
|
|
||||||
args << "--fail" unless warn_on_error
|
|
||||||
|
|
||||||
result = T.unsafe(self).open_api(url, *args)
|
|
||||||
|
|
||||||
json = JSON.parse(result.stdout)
|
|
||||||
return if json["message"] == "success"
|
|
||||||
|
|
||||||
msg = "Bottle upload failed: #{json["message"]}"
|
|
||||||
raise msg unless warn_on_error
|
|
||||||
|
|
||||||
opoo msg
|
|
||||||
end
|
|
||||||
|
|
||||||
sig {
|
|
||||||
params(repo: String,
|
|
||||||
package: String,
|
|
||||||
version: String,
|
|
||||||
file_count: T.nilable(Integer),
|
|
||||||
warn_on_error: T.nilable(T::Boolean)).void
|
|
||||||
}
|
|
||||||
def publish(repo:, package:, version:, file_count:, warn_on_error: false)
|
|
||||||
url = "#{API_URL}/content/#{@bintray_org}/#{repo}/#{package}/#{version}/publish"
|
|
||||||
upload_args = %w[--request POST]
|
|
||||||
upload_args += ["--fail"] unless warn_on_error
|
|
||||||
result = T.unsafe(self).open_api(url, *upload_args)
|
|
||||||
json = JSON.parse(result.stdout)
|
|
||||||
if file_count.present? && json["files"] != file_count
|
|
||||||
message = "Bottle publish failed: expected #{file_count} bottles, but published #{json["files"]} instead."
|
|
||||||
raise message unless warn_on_error
|
|
||||||
|
|
||||||
opoo message
|
|
||||||
end
|
|
||||||
|
|
||||||
odebug "Published #{json["files"]} bottles"
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { params(org: T.nilable(String)).returns(T::Boolean) }
|
|
||||||
def official_org?(org: @bintray_org)
|
|
||||||
%w[homebrew linuxbrew].include? org
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { params(url: String).returns(T::Boolean) }
|
|
||||||
def stable_mirrored?(url)
|
|
||||||
headers, = curl_output("--connect-timeout", "15", "--location", "--head", url)
|
|
||||||
status_code = headers.scan(%r{^HTTP/.* (\d+)}).last.first
|
|
||||||
status_code.start_with?("2")
|
|
||||||
end
|
|
||||||
|
|
||||||
sig {
|
|
||||||
params(formula: Formula,
|
|
||||||
repo: String,
|
|
||||||
publish_package: T::Boolean,
|
|
||||||
warn_on_error: T::Boolean).returns(String)
|
|
||||||
}
|
|
||||||
def mirror_formula(formula, repo: "mirror", publish_package: false, warn_on_error: false)
|
|
||||||
package = Utils::Bottles::Bintray.package formula.name
|
|
||||||
|
|
||||||
create_package(repo: repo, package: package) unless package_exists?(repo: repo, package: package)
|
|
||||||
|
|
||||||
formula.downloader.fetch
|
|
||||||
|
|
||||||
version = ERB::Util.url_encode(formula.pkg_version)
|
|
||||||
filename = ERB::Util.url_encode(formula.downloader.basename)
|
|
||||||
destination_url = "https://dl.bintray.com/#{@bintray_org}/#{repo}/#{filename}"
|
|
||||||
|
|
||||||
odebug "Uploading to #{destination_url}"
|
|
||||||
|
|
||||||
upload(
|
|
||||||
formula.downloader.cached_location,
|
|
||||||
repo: repo,
|
|
||||||
package: package,
|
|
||||||
version: version,
|
|
||||||
sha256: formula.stable.checksum,
|
|
||||||
remote_file: filename,
|
|
||||||
warn_on_error: warn_on_error,
|
|
||||||
)
|
|
||||||
return destination_url unless publish_package
|
|
||||||
|
|
||||||
odebug "Publishing #{@bintray_org}/#{repo}/#{package}/#{version}"
|
|
||||||
publish(repo: repo, package: package, version: version, file_count: 1, warn_on_error: warn_on_error)
|
|
||||||
|
|
||||||
destination_url
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { params(repo: String, package: String).void }
|
|
||||||
def create_package(repo:, package:)
|
|
||||||
url = "#{API_URL}/packages/#{@bintray_org}/#{repo}"
|
|
||||||
data = { name: package, public_download_numbers: true }
|
|
||||||
data[:public_stats] = official_org?
|
|
||||||
open_api(url, "--header", "Content-Type: application/json", "--request", "POST", "--data", data.to_json)
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { params(repo: String, package: String).returns(T::Boolean) }
|
|
||||||
def package_exists?(repo:, package:)
|
|
||||||
url = "#{API_URL}/packages/#{@bintray_org}/#{repo}/#{package}"
|
|
||||||
begin
|
|
||||||
open_api(url, "--fail", "--silent", "--output", "/dev/null", auth: false)
|
|
||||||
rescue ErrorDuringExecution => e
|
|
||||||
stderr = e.output
|
|
||||||
.select { |type,| type == :stderr }
|
|
||||||
.map { |_, line| line }
|
|
||||||
.join
|
|
||||||
raise if e.status.exitstatus != 22 && stderr.exclude?("404 Not Found")
|
|
||||||
|
|
||||||
false
|
|
||||||
else
|
|
||||||
true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Gets the SHA-256 checksum of the specified remote file.
|
|
||||||
#
|
|
||||||
# @return the checksum, the empty string (if the file doesn't have a checksum), nil (if the file doesn't exist)
|
|
||||||
sig { params(repo: String, remote_file: String).returns(T.nilable(String)) }
|
|
||||||
def remote_checksum(repo:, remote_file:)
|
|
||||||
url = "https://dl.bintray.com/#{@bintray_org}/#{repo}/#{remote_file}"
|
|
||||||
result = curl_output "--fail", "--silent", "--head", url
|
|
||||||
if result.success?
|
|
||||||
result.stdout.match(/^X-Checksum-Sha2:\s+(\h{64})\b/i)&.values_at(1)&.first || ""
|
|
||||||
else
|
|
||||||
raise Error if result.status.exitstatus != 22 && result.stderr.exclude?("404 Not Found")
|
|
||||||
|
|
||||||
nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { params(bintray_repo: String, bintray_package: String, filename: String).returns(String) }
|
|
||||||
def file_delete_instructions(bintray_repo, bintray_package, filename)
|
|
||||||
<<~EOS
|
|
||||||
Remove this file manually in your web browser:
|
|
||||||
https://bintray.com/#{@bintray_org}/#{bintray_repo}/#{bintray_package}/view#files
|
|
||||||
Or run:
|
|
||||||
curl -X DELETE -u $HOMEBREW_BINTRAY_USER:$HOMEBREW_BINTRAY_KEY \\
|
|
||||||
https://api.bintray.com/content/#{@bintray_org}/#{bintray_repo}/#{filename}
|
|
||||||
EOS
|
|
||||||
end
|
|
||||||
|
|
||||||
sig {
|
|
||||||
params(bottles_hash: T::Hash[String, T.untyped],
|
|
||||||
publish_package: T::Boolean,
|
|
||||||
warn_on_error: T.nilable(T::Boolean)).void
|
|
||||||
}
|
|
||||||
def upload_bottles(bottles_hash, publish_package: false, warn_on_error: false)
|
|
||||||
formula_packaged = {}
|
|
||||||
|
|
||||||
bottles_hash.each do |formula_name, bottle_hash|
|
|
||||||
version = ERB::Util.url_encode(bottle_hash["formula"]["pkg_version"])
|
|
||||||
bintray_package = bottle_hash["bintray"]["package"]
|
|
||||||
bintray_repo = bottle_hash["bintray"]["repository"]
|
|
||||||
bottle_count = bottle_hash["bottle"]["tags"].length
|
|
||||||
|
|
||||||
bottle_hash["bottle"]["tags"].each do |tag, tag_hash|
|
|
||||||
filename = Bottle::Filename.new(bottle_hash["formula"]["name"], bottle_hash["formula"]["pkg_version"],
|
|
||||||
tag, bottle_hash["bottle"]["rebuild"]).bintray
|
|
||||||
sha256 = tag_hash["sha256"]
|
|
||||||
delete_instructions = file_delete_instructions(bintray_repo, bintray_package, filename)
|
|
||||||
|
|
||||||
odebug "Checking remote file #{@bintray_org}/#{bintray_repo}/#{filename}"
|
|
||||||
result = remote_checksum(repo: bintray_repo, remote_file: filename)
|
|
||||||
|
|
||||||
case result
|
|
||||||
when nil
|
|
||||||
# File doesn't exist.
|
|
||||||
if !formula_packaged[formula_name] && !package_exists?(repo: bintray_repo, package: bintray_package)
|
|
||||||
odebug "Creating package #{@bintray_org}/#{bintray_repo}/#{bintray_package}"
|
|
||||||
create_package repo: bintray_repo, package: bintray_package
|
|
||||||
formula_packaged[formula_name] = true
|
|
||||||
end
|
|
||||||
|
|
||||||
odebug "Uploading #{@bintray_org}/#{bintray_repo}/#{bintray_package}/#{version}/#{filename}"
|
|
||||||
upload(tag_hash["local_filename"],
|
|
||||||
repo: bintray_repo,
|
|
||||||
package: bintray_package,
|
|
||||||
version: version,
|
|
||||||
remote_file: filename,
|
|
||||||
sha256: sha256,
|
|
||||||
warn_on_error: warn_on_error)
|
|
||||||
when sha256
|
|
||||||
# File exists, checksum matches.
|
|
||||||
odebug "#{filename} is already published with matching hash."
|
|
||||||
bottle_count -= 1
|
|
||||||
when ""
|
|
||||||
# File exists, but can't find checksum
|
|
||||||
failed_message = "#{filename} is already published!"
|
|
||||||
raise Error, "#{failed_message}\n#{delete_instructions}" unless warn_on_error
|
|
||||||
|
|
||||||
opoo failed_message
|
|
||||||
else
|
|
||||||
# File exists, but checksum either doesn't exist or is mismatched.
|
|
||||||
failed_message = <<~EOS
|
|
||||||
#{filename} is already published with a mismatched hash!
|
|
||||||
Expected: #{sha256}
|
|
||||||
Actual: #{result}
|
|
||||||
EOS
|
|
||||||
raise Error, "#{failed_message}#{delete_instructions}" unless warn_on_error
|
|
||||||
|
|
||||||
opoo failed_message
|
|
||||||
end
|
|
||||||
end
|
|
||||||
next unless publish_package
|
|
||||||
|
|
||||||
odebug "Publishing #{@bintray_org}/#{bintray_repo}/#{bintray_package}/#{version}"
|
|
||||||
publish(repo: bintray_repo,
|
|
||||||
package: bintray_package,
|
|
||||||
version: version,
|
|
||||||
file_count: bottle_count,
|
|
||||||
warn_on_error: warn_on_error)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@ -183,11 +183,6 @@ module Homebrew
|
|||||||
sig { returns(T.nilable(String)) }
|
sig { returns(T.nilable(String)) }
|
||||||
def workflow; end
|
def workflow; end
|
||||||
|
|
||||||
sig { returns(T.nilable(String)) }
|
|
||||||
def bintray_org; end
|
|
||||||
|
|
||||||
sig { returns(T.nilable(String)) }
|
|
||||||
def bintray_repo; end
|
|
||||||
sig { returns(T.nilable(String)) }
|
sig { returns(T.nilable(String)) }
|
||||||
def package_name; end
|
def package_name; end
|
||||||
|
|
||||||
|
|||||||
@ -87,7 +87,7 @@ fetch() {
|
|||||||
curl_args[${#curl_args[*]}]="-q"
|
curl_args[${#curl_args[*]}]="-q"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Authorization is needed for GitHub Packages but harmless on Bintray/GitHub Releases
|
# Authorization is needed for GitHub Packages but harmless on GitHub Releases
|
||||||
curl_args+=(
|
curl_args+=(
|
||||||
--fail
|
--fail
|
||||||
--remote-time
|
--remote-time
|
||||||
@ -145,8 +145,7 @@ Failed to download ${VENDOR_URL} and ${VENDOR_URL2}!
|
|||||||
|
|
||||||
Do not file an issue on GitHub about this; you will need to figure out for
|
Do not file an issue on GitHub about this; you will need to figure out for
|
||||||
yourself what issue with your internet connection restricts your access to
|
yourself what issue with your internet connection restricts your access to
|
||||||
both Bintray (used for Homebrew bottles/binary packages) and GitHub
|
GitHub (used for Homebrew updates and binary packages).
|
||||||
(used for Homebrew updates).
|
|
||||||
EOS
|
EOS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,6 @@ require "cli/parser"
|
|||||||
require "utils/inreplace"
|
require "utils/inreplace"
|
||||||
require "erb"
|
require "erb"
|
||||||
require "archive"
|
require "archive"
|
||||||
require "bintray"
|
|
||||||
|
|
||||||
BOTTLE_ERB = <<-EOS
|
BOTTLE_ERB = <<-EOS
|
||||||
bottle do
|
bottle do
|
||||||
@ -584,15 +583,6 @@ module Homebrew
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if bottle.root_url.match?(::Bintray::URL_REGEX) ||
|
|
||||||
# TODO: given the naming: ideally the Internet Archive uploader wouldn't use this.
|
|
||||||
bottle.root_url.start_with?("#{::Archive::URL_PREFIX}/")
|
|
||||||
json[f.full_name]["bintray"] = {
|
|
||||||
"package" => Utils::Bottles::Bintray.package(f.name),
|
|
||||||
"repository" => Utils::Bottles::Bintray.repository(tap),
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
puts "Writing #{filename.json}" if args.verbose?
|
puts "Writing #{filename.json}" if args.verbose?
|
||||||
json_path = Pathname(filename.json)
|
json_path = Pathname(filename.json)
|
||||||
json_path.unlink if json_path.exist?
|
json_path.unlink if json_path.exist?
|
||||||
|
|||||||
@ -24,7 +24,7 @@ module Homebrew
|
|||||||
flag "--workflow=",
|
flag "--workflow=",
|
||||||
description: "Dispatch specified workflow (default: `dispatch-build-bottle.yml`)."
|
description: "Dispatch specified workflow (default: `dispatch-build-bottle.yml`)."
|
||||||
switch "--upload",
|
switch "--upload",
|
||||||
description: "Upload built bottles to Bintray."
|
description: "Upload built bottles."
|
||||||
switch "--linux",
|
switch "--linux",
|
||||||
description: "Dispatch bottle for Linux (using GitHub runners)."
|
description: "Dispatch bottle for Linux (using GitHub runners)."
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
# typed: true
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "bintray"
|
|
||||||
require "cli/parser"
|
require "cli/parser"
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
@ -13,34 +12,13 @@ module Homebrew
|
|||||||
def mirror_args
|
def mirror_args
|
||||||
Homebrew::CLI::Parser.new do
|
Homebrew::CLI::Parser.new do
|
||||||
description <<~EOS
|
description <<~EOS
|
||||||
Reupload the stable URL of a formula to Bintray for use as a mirror.
|
Reupload the stable URL of a formula for use as a mirror.
|
||||||
EOS
|
EOS
|
||||||
flag "--bintray-org=",
|
|
||||||
description: "Upload to the specified Bintray organisation (default: `homebrew`)."
|
|
||||||
flag "--bintray-repo=",
|
|
||||||
description: "Upload to the specified Bintray repository (default: `mirror`)."
|
|
||||||
switch "--no-publish",
|
|
||||||
description: "Upload to Bintray, but don't publish."
|
|
||||||
|
|
||||||
named_args :formula, min: 1
|
|
||||||
|
|
||||||
hide_from_man_page!
|
hide_from_man_page!
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def mirror
|
def mirror
|
||||||
args = mirror_args.parse
|
odisabled "`brew mirror` (Bintray was shut down on 1st May 2021)"
|
||||||
|
|
||||||
odeprecated "brew mirror (Bintray will be shut down on 1st May 2021)"
|
|
||||||
|
|
||||||
bintray_org = args.bintray_org || "homebrew"
|
|
||||||
bintray_repo = args.bintray_repo || "mirror"
|
|
||||||
|
|
||||||
bintray = Bintray.new(org: bintray_org)
|
|
||||||
|
|
||||||
args.named.to_formulae.each do |formula|
|
|
||||||
mirror_url = bintray.mirror_formula(formula, repo: bintray_repo, publish_package: !args.no_publish?)
|
|
||||||
ohai "Mirrored #{formula.full_name} to #{mirror_url}!"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -55,8 +55,6 @@ module Homebrew
|
|||||||
description: "Download artifacts with the specified name (default: `bottles`)."
|
description: "Download artifacts with the specified name (default: `bottles`)."
|
||||||
flag "--archive-item=",
|
flag "--archive-item=",
|
||||||
description: "Upload to the specified Internet Archive item (default: `homebrew`)."
|
description: "Upload to the specified Internet Archive item (default: `homebrew`)."
|
||||||
flag "--bintray-org=",
|
|
||||||
description: "Upload to the specified Bintray organisation (default: `homebrew`)."
|
|
||||||
flag "--tap=",
|
flag "--tap=",
|
||||||
description: "Target tap repository (default: `homebrew/core`)."
|
description: "Target tap repository (default: `homebrew/core`)."
|
||||||
flag "--root-url=",
|
flag "--root-url=",
|
||||||
@ -64,9 +62,6 @@ module Homebrew
|
|||||||
flag "--root-url-using=",
|
flag "--root-url-using=",
|
||||||
description: "Use the specified download strategy class for downloading the bottle's URL instead of "\
|
description: "Use the specified download strategy class for downloading the bottle's URL instead of "\
|
||||||
"Homebrew's default."
|
"Homebrew's default."
|
||||||
flag "--bintray-mirror=",
|
|
||||||
description: "Use the specified Bintray repository to automatically mirror stable URLs "\
|
|
||||||
"defined in the formulae (default: `mirror`)."
|
|
||||||
comma_array "--workflows=",
|
comma_array "--workflows=",
|
||||||
description: "Retrieve artifacts from the specified workflow (default: `tests.yml`). "\
|
description: "Retrieve artifacts from the specified workflow (default: `tests.yml`). "\
|
||||||
"Can be a comma-separated list to include multiple workflows."
|
"Can be a comma-separated list to include multiple workflows."
|
||||||
@ -74,7 +69,6 @@ module Homebrew
|
|||||||
description: "Comma-separated list of workflows which can be ignored if they have not been run."
|
description: "Comma-separated list of workflows which can be ignored if they have not been run."
|
||||||
|
|
||||||
conflicts "--clean", "--autosquash"
|
conflicts "--clean", "--autosquash"
|
||||||
conflicts "--archive-item", "--bintray-org"
|
|
||||||
|
|
||||||
named_args :pull_request, min: 1
|
named_args :pull_request, min: 1
|
||||||
end
|
end
|
||||||
@ -308,26 +302,6 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def mirror_formulae(tap, original_commit, org:, repo:, args:, publish: true)
|
|
||||||
changed_formulae(tap, original_commit).select do |f|
|
|
||||||
stable_urls = [f.stable.url] + f.stable.mirrors
|
|
||||||
stable_urls.grep(%r{^https://dl.bintray.com/#{org}/#{repo}/}) do |mirror_url|
|
|
||||||
if args.dry_run?
|
|
||||||
puts "brew mirror #{f.full_name}"
|
|
||||||
else
|
|
||||||
odebug "Mirroring #{mirror_url}"
|
|
||||||
mirror_args = ["mirror", f.full_name]
|
|
||||||
mirror_args << "--debug" if args.debug?
|
|
||||||
mirror_args << "--verbose" if args.verbose?
|
|
||||||
mirror_args << "--bintray-org=#{org}" if org
|
|
||||||
mirror_args << "--bintray-repo=#{repo}" if repo
|
|
||||||
mirror_args << "--no-publish" unless publish
|
|
||||||
system HOMEBREW_BREW_FILE, *mirror_args
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def changed_formulae(tap, original_commit)
|
def changed_formulae(tap, original_commit)
|
||||||
if Homebrew::EnvConfig.disable_load_formula?
|
if Homebrew::EnvConfig.disable_load_formula?
|
||||||
opoo "Can't check if updated bottles are necessary as formula loading is disabled!"
|
opoo "Can't check if updated bottles are necessary as formula loading is disabled!"
|
||||||
@ -368,8 +342,6 @@ module Homebrew
|
|||||||
workflows = args.workflows.presence || ["tests.yml"]
|
workflows = args.workflows.presence || ["tests.yml"]
|
||||||
artifact = args.artifact || "bottles"
|
artifact = args.artifact || "bottles"
|
||||||
archive_item = args.archive_item
|
archive_item = args.archive_item
|
||||||
bintray_org = args.bintray_org || "homebrew"
|
|
||||||
mirror_repo = args.bintray_mirror || "mirror"
|
|
||||||
tap = Tap.fetch(args.tap || CoreTap.instance.name)
|
tap = Tap.fetch(args.tap || CoreTap.instance.name)
|
||||||
|
|
||||||
Utils::Git.set_name_email!(committer: args.committer.blank?)
|
Utils::Git.set_name_email!(committer: args.committer.blank?)
|
||||||
@ -403,12 +375,6 @@ module Homebrew
|
|||||||
verbose: args.verbose?, resolve: args.resolve?, reason: args.message)
|
verbose: args.verbose?, resolve: args.resolve?, reason: args.message)
|
||||||
end
|
end
|
||||||
signoff!(tap.path, pr: pr, dry_run: args.dry_run?) unless args.clean?
|
signoff!(tap.path, pr: pr, dry_run: args.dry_run?) unless args.clean?
|
||||||
|
|
||||||
unless args.no_upload?
|
|
||||||
mirror_formulae(tap, original_commit,
|
|
||||||
org: bintray_org, repo: mirror_repo, publish: !args.no_publish?,
|
|
||||||
args: args)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
unless formulae_need_bottles?(tap, original_commit, user, repo, pr, args: args)
|
unless formulae_need_bottles?(tap, original_commit, user, repo, pr, args: args)
|
||||||
@ -447,11 +413,7 @@ module Homebrew
|
|||||||
upload_args << "--committer=#{args.committer}" if args.committer
|
upload_args << "--committer=#{args.committer}" if args.committer
|
||||||
upload_args << "--root-url=#{args.root_url}" if args.root_url
|
upload_args << "--root-url=#{args.root_url}" if args.root_url
|
||||||
upload_args << "--root-url-using=#{args.root_url_using}" if args.root_url_using
|
upload_args << "--root-url-using=#{args.root_url_using}" if args.root_url_using
|
||||||
upload_args << if archive_item.present?
|
upload_args << "--archive-item=#{archive_item}" if archive_item.present?
|
||||||
"--archive-item=#{archive_item}"
|
|
||||||
else
|
|
||||||
"--bintray-org=#{bintray_org}"
|
|
||||||
end
|
|
||||||
safe_system HOMEBREW_BREW_FILE, *upload_args
|
safe_system HOMEBREW_BREW_FILE, *upload_args
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
require "cli/parser"
|
require "cli/parser"
|
||||||
require "archive"
|
require "archive"
|
||||||
require "bintray"
|
|
||||||
require "github_packages"
|
require "github_packages"
|
||||||
require "github_releases"
|
require "github_releases"
|
||||||
|
|
||||||
@ -34,8 +33,6 @@ module Homebrew
|
|||||||
description: "Specify a committer name and email in `git`'s standard author format."
|
description: "Specify a committer name and email in `git`'s standard author format."
|
||||||
flag "--archive-item=",
|
flag "--archive-item=",
|
||||||
description: "Upload to the specified Internet Archive item (default: `homebrew`)."
|
description: "Upload to the specified Internet Archive item (default: `homebrew`)."
|
||||||
flag "--bintray-org=",
|
|
||||||
description: "Upload to the specified Bintray organisation (default: `homebrew`)."
|
|
||||||
flag "--github-org=",
|
flag "--github-org=",
|
||||||
description: "Upload to the specified GitHub organisation's GitHub Packages (default: `homebrew`)."
|
description: "Upload to the specified GitHub organisation's GitHub Packages (default: `homebrew`)."
|
||||||
flag "--root-url=",
|
flag "--root-url=",
|
||||||
@ -65,12 +62,6 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def bintray?(bottles_hash)
|
|
||||||
@bintray ||= bottles_hash.values.all? do |bottle_hash|
|
|
||||||
bottle_hash["bottle"]["root_url"].match? Bintray::URL_REGEX
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def github_releases?(bottles_hash)
|
def github_releases?(bottles_hash)
|
||||||
@github_releases ||= bottles_hash.values.all? do |bottle_hash|
|
@github_releases ||= bottles_hash.values.all? do |bottle_hash|
|
||||||
root_url = bottle_hash["bottle"]["root_url"]
|
root_url = bottle_hash["bottle"]["root_url"]
|
||||||
@ -126,8 +117,6 @@ module Homebrew
|
|||||||
nil
|
nil
|
||||||
elsif internet_archive?(bottles_hash)
|
elsif internet_archive?(bottles_hash)
|
||||||
"Internet Archive"
|
"Internet Archive"
|
||||||
elsif bintray?(bottles_hash)
|
|
||||||
"Bintray"
|
|
||||||
elsif github_releases?(bottles_hash)
|
elsif github_releases?(bottles_hash)
|
||||||
"GitHub Releases"
|
"GitHub Releases"
|
||||||
else
|
else
|
||||||
@ -176,14 +165,6 @@ module Homebrew
|
|||||||
archive = Archive.new(item: archive_item)
|
archive = Archive.new(item: archive_item)
|
||||||
archive.upload_bottles(bottles_hash,
|
archive.upload_bottles(bottles_hash,
|
||||||
warn_on_error: args.warn_on_upload_failure?)
|
warn_on_error: args.warn_on_upload_failure?)
|
||||||
elsif bintray?(bottles_hash)
|
|
||||||
odeprecated "brew pr-upload for Bintray (Bintray will be shut down on 1st May 2021)"
|
|
||||||
|
|
||||||
bintray_org = args.bintray_org || "homebrew"
|
|
||||||
bintray = Bintray.new(org: bintray_org)
|
|
||||||
bintray.upload_bottles(bottles_hash,
|
|
||||||
publish_package: !args.no_publish?,
|
|
||||||
warn_on_error: args.warn_on_upload_failure?)
|
|
||||||
elsif github_releases?(bottles_hash)
|
elsif github_releases?(bottles_hash)
|
||||||
github_releases = GitHubReleases.new
|
github_releases = GitHubReleases.new
|
||||||
github_releases.upload_bottles(bottles_hash)
|
github_releases.upload_bottles(bottles_hash)
|
||||||
|
|||||||
@ -33,12 +33,6 @@ module Homebrew
|
|||||||
description: "Use this as the `bat` configuration file.",
|
description: "Use this as the `bat` configuration file.",
|
||||||
default_text: "`$HOME/.bat/config`.",
|
default_text: "`$HOME/.bat/config`.",
|
||||||
},
|
},
|
||||||
HOMEBREW_BINTRAY_KEY: {
|
|
||||||
description: "Use this API key when accessing the Bintray API (where bottles are stored).",
|
|
||||||
},
|
|
||||||
HOMEBREW_BINTRAY_USER: {
|
|
||||||
description: "Use this username when accessing the Bintray API (where bottles are stored).",
|
|
||||||
},
|
|
||||||
HOMEBREW_BOOTSNAP: {
|
HOMEBREW_BOOTSNAP: {
|
||||||
description: "If set, use Bootsnap to speed up repeated `brew` calls. "\
|
description: "If set, use Bootsnap to speed up repeated `brew` calls. "\
|
||||||
"A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).",
|
"A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).",
|
||||||
|
|||||||
@ -13,7 +13,6 @@ require "patch"
|
|||||||
require "compilers"
|
require "compilers"
|
||||||
require "os/mac/version"
|
require "os/mac/version"
|
||||||
require "extend/on_os"
|
require "extend/on_os"
|
||||||
require "bintray"
|
|
||||||
|
|
||||||
class SoftwareSpec
|
class SoftwareSpec
|
||||||
extend T::Sig
|
extend T::Sig
|
||||||
@ -461,8 +460,6 @@ class BottleSpecification
|
|||||||
if var.nil?
|
if var.nil?
|
||||||
@root_url ||= if (github_packages_url = GitHubPackages.root_url_if_match(Homebrew::EnvConfig.bottle_domain))
|
@root_url ||= if (github_packages_url = GitHubPackages.root_url_if_match(Homebrew::EnvConfig.bottle_domain))
|
||||||
github_packages_url
|
github_packages_url
|
||||||
elsif Homebrew::EnvConfig.bottle_domain.match?(::Bintray::URL_REGEX)
|
|
||||||
"#{Homebrew::EnvConfig.bottle_domain}/#{Utils::Bottles::Bintray.repository(tap)}"
|
|
||||||
else
|
else
|
||||||
Homebrew::EnvConfig.bottle_domain
|
Homebrew::EnvConfig.bottle_domain
|
||||||
end
|
end
|
||||||
|
|||||||
@ -2893,11 +2893,6 @@ class Binding
|
|||||||
def irb(); end
|
def irb(); end
|
||||||
end
|
end
|
||||||
|
|
||||||
class Bintray
|
|
||||||
extend ::T::Private::Methods::MethodHooks
|
|
||||||
extend ::T::Private::Methods::SingletonMethodHooks
|
|
||||||
end
|
|
||||||
|
|
||||||
module Bootsnap
|
module Bootsnap
|
||||||
def bundler?(); end
|
def bundler?(); end
|
||||||
VERSION = ::T.let(nil, ::T.untyped)
|
VERSION = ::T.let(nil, ::T.untyped)
|
||||||
@ -8161,10 +8156,6 @@ module Homebrew::EnvConfig
|
|||||||
|
|
||||||
def self.bat_config_path(); end
|
def self.bat_config_path(); end
|
||||||
|
|
||||||
def self.bintray_key(); end
|
|
||||||
|
|
||||||
def self.bintray_user(); end
|
|
||||||
|
|
||||||
def self.bootsnap?(); end
|
def self.bootsnap?(); end
|
||||||
|
|
||||||
def self.bottle_domain(); end
|
def self.bottle_domain(); end
|
||||||
|
|||||||
@ -680,10 +680,6 @@ def stub_hash(parameters)
|
|||||||
"sha256":"#{parameters[:sha256]}"
|
"sha256":"#{parameters[:sha256]}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"bintray":{
|
|
||||||
"package":"#{parameters[:name]}",
|
|
||||||
"repository":"bottles"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,21 +0,0 @@
|
|||||||
# typed: false
|
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
require "utils/bottles"
|
|
||||||
|
|
||||||
describe Utils::Bottles::Bintray do
|
|
||||||
describe "::package" do
|
|
||||||
it "converts a Formula name to a package name" do
|
|
||||||
expect(described_class.package("openssl@1.1")).to eq("openssl:1.1")
|
|
||||||
expect(described_class.package("gtk+")).to eq("gtkx")
|
|
||||||
expect(described_class.package("llvm")).to eq("llvm")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "::repository" do
|
|
||||||
it "returns the repository for a given Tap" do
|
|
||||||
expect(described_class.repository(Tap.new("homebrew", "bintray-test")))
|
|
||||||
.to eq("bottles-bintray-test")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@ -215,24 +215,6 @@ module Utils
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Helper functions for bottles hosted on Bintray.
|
|
||||||
module Bintray
|
|
||||||
def self.package(formula_name)
|
|
||||||
package_name = formula_name.to_s.dup
|
|
||||||
package_name.tr!("+", "x")
|
|
||||||
package_name.sub!(/(.)@(\d)/, "\\1:\\2") # Handle foo@1.2 style formulae.
|
|
||||||
package_name
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.repository(tap = nil)
|
|
||||||
if tap.nil? || tap.core_tap?
|
|
||||||
"bottles"
|
|
||||||
else
|
|
||||||
"bottles-#{tap.repo}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Collector for bottle specifications.
|
# Collector for bottle specifications.
|
||||||
class Collector
|
class Collector
|
||||||
extend T::Sig
|
extend T::Sig
|
||||||
|
|||||||
@ -1383,11 +1383,8 @@ _brew_mirror() {
|
|||||||
case "${cur}" in
|
case "${cur}" in
|
||||||
-*)
|
-*)
|
||||||
__brewcomp "
|
__brewcomp "
|
||||||
--bintray-org
|
|
||||||
--bintray-repo
|
|
||||||
--debug
|
--debug
|
||||||
--help
|
--help
|
||||||
--no-publish
|
|
||||||
--quiet
|
--quiet
|
||||||
--verbose
|
--verbose
|
||||||
"
|
"
|
||||||
@ -1395,7 +1392,6 @@ _brew_mirror() {
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
esac
|
esac
|
||||||
__brew_complete_formulae
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_brew_missing() {
|
_brew_missing() {
|
||||||
@ -1545,8 +1541,6 @@ _brew_pr_pull() {
|
|||||||
--archive-item
|
--archive-item
|
||||||
--artifact
|
--artifact
|
||||||
--autosquash
|
--autosquash
|
||||||
--bintray-mirror
|
|
||||||
--bintray-org
|
|
||||||
--branch-okay
|
--branch-okay
|
||||||
--clean
|
--clean
|
||||||
--committer
|
--committer
|
||||||
@ -1580,7 +1574,6 @@ _brew_pr_upload() {
|
|||||||
-*)
|
-*)
|
||||||
__brewcomp "
|
__brewcomp "
|
||||||
--archive-item
|
--archive-item
|
||||||
--bintray-org
|
|
||||||
--committer
|
--committer
|
||||||
--debug
|
--debug
|
||||||
--dry-run
|
--dry-run
|
||||||
|
|||||||
@ -585,7 +585,7 @@ __fish_brew_complete_arg 'dispatch-build-bottle' -l linux -d 'Dispatch bottle fo
|
|||||||
__fish_brew_complete_arg 'dispatch-build-bottle' -l macos -d 'Version of macOS the bottle should be built for'
|
__fish_brew_complete_arg 'dispatch-build-bottle' -l macos -d 'Version of macOS the bottle should be built for'
|
||||||
__fish_brew_complete_arg 'dispatch-build-bottle' -l quiet -d 'Make some output more quiet'
|
__fish_brew_complete_arg 'dispatch-build-bottle' -l quiet -d 'Make some output more quiet'
|
||||||
__fish_brew_complete_arg 'dispatch-build-bottle' -l tap -d 'Target tap repository (default: `homebrew/core`)'
|
__fish_brew_complete_arg 'dispatch-build-bottle' -l tap -d 'Target tap repository (default: `homebrew/core`)'
|
||||||
__fish_brew_complete_arg 'dispatch-build-bottle' -l upload -d 'Upload built bottles to Bintray'
|
__fish_brew_complete_arg 'dispatch-build-bottle' -l upload -d 'Upload built bottles'
|
||||||
__fish_brew_complete_arg 'dispatch-build-bottle' -l verbose -d 'Make some output more verbose'
|
__fish_brew_complete_arg 'dispatch-build-bottle' -l verbose -d 'Make some output more verbose'
|
||||||
__fish_brew_complete_arg 'dispatch-build-bottle' -l workflow -d 'Dispatch specified workflow (default: `dispatch-build-bottle.yml`)'
|
__fish_brew_complete_arg 'dispatch-build-bottle' -l workflow -d 'Dispatch specified workflow (default: `dispatch-build-bottle.yml`)'
|
||||||
__fish_brew_complete_arg 'dispatch-build-bottle' -a '(__fish_brew_suggest_formulae_all)'
|
__fish_brew_complete_arg 'dispatch-build-bottle' -a '(__fish_brew_suggest_formulae_all)'
|
||||||
@ -967,15 +967,11 @@ __fish_brew_complete_arg 'migrate' -l verbose -d 'Make some output more verbose'
|
|||||||
__fish_brew_complete_arg 'migrate' -a '(__fish_brew_suggest_formulae_installed)'
|
__fish_brew_complete_arg 'migrate' -a '(__fish_brew_suggest_formulae_installed)'
|
||||||
|
|
||||||
|
|
||||||
__fish_brew_complete_cmd 'mirror' 'Reupload the stable URL of a formula to Bintray for use as a mirror'
|
__fish_brew_complete_cmd 'mirror' 'Reupload the stable URL of a formula for use as a mirror'
|
||||||
__fish_brew_complete_arg 'mirror' -l bintray-org -d 'Upload to the specified Bintray organisation (default: `homebrew`)'
|
|
||||||
__fish_brew_complete_arg 'mirror' -l bintray-repo -d 'Upload to the specified Bintray repository (default: `mirror`)'
|
|
||||||
__fish_brew_complete_arg 'mirror' -l debug -d 'Display any debugging information'
|
__fish_brew_complete_arg 'mirror' -l debug -d 'Display any debugging information'
|
||||||
__fish_brew_complete_arg 'mirror' -l help -d 'Show this message'
|
__fish_brew_complete_arg 'mirror' -l help -d 'Show this message'
|
||||||
__fish_brew_complete_arg 'mirror' -l no-publish -d 'Upload to Bintray, but don\'t publish'
|
|
||||||
__fish_brew_complete_arg 'mirror' -l quiet -d 'Make some output more quiet'
|
__fish_brew_complete_arg 'mirror' -l quiet -d 'Make some output more quiet'
|
||||||
__fish_brew_complete_arg 'mirror' -l verbose -d 'Make some output more verbose'
|
__fish_brew_complete_arg 'mirror' -l verbose -d 'Make some output more verbose'
|
||||||
__fish_brew_complete_arg 'mirror' -a '(__fish_brew_suggest_formulae_all)'
|
|
||||||
|
|
||||||
|
|
||||||
__fish_brew_complete_cmd 'missing' 'Check the given formula kegs for missing dependencies'
|
__fish_brew_complete_cmd 'missing' 'Check the given formula kegs for missing dependencies'
|
||||||
@ -1058,8 +1054,6 @@ __fish_brew_complete_cmd 'pr-pull' 'Download and publish bottles, and apply the
|
|||||||
__fish_brew_complete_arg 'pr-pull' -l archive-item -d 'Upload to the specified Internet Archive item (default: `homebrew`)'
|
__fish_brew_complete_arg 'pr-pull' -l archive-item -d 'Upload to the specified Internet Archive item (default: `homebrew`)'
|
||||||
__fish_brew_complete_arg 'pr-pull' -l artifact -d 'Download artifacts with the specified name (default: `bottles`)'
|
__fish_brew_complete_arg 'pr-pull' -l artifact -d 'Download artifacts with the specified name (default: `bottles`)'
|
||||||
__fish_brew_complete_arg 'pr-pull' -l autosquash -d 'Automatically reformat and reword commits in the pull request to our preferred format'
|
__fish_brew_complete_arg 'pr-pull' -l autosquash -d 'Automatically reformat and reword commits in the pull request to our preferred format'
|
||||||
__fish_brew_complete_arg 'pr-pull' -l bintray-mirror -d 'Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: `mirror`)'
|
|
||||||
__fish_brew_complete_arg 'pr-pull' -l bintray-org -d 'Upload to the specified Bintray organisation (default: `homebrew`)'
|
|
||||||
__fish_brew_complete_arg 'pr-pull' -l branch-okay -d 'Do not warn if pulling to a branch besides the repository default (useful for testing)'
|
__fish_brew_complete_arg 'pr-pull' -l branch-okay -d 'Do not warn if pulling to a branch besides the repository default (useful for testing)'
|
||||||
__fish_brew_complete_arg 'pr-pull' -l clean -d 'Do not amend the commits from pull requests'
|
__fish_brew_complete_arg 'pr-pull' -l clean -d 'Do not amend the commits from pull requests'
|
||||||
__fish_brew_complete_arg 'pr-pull' -l committer -d 'Specify a committer name and email in `git`\'s standard author format'
|
__fish_brew_complete_arg 'pr-pull' -l committer -d 'Specify a committer name and email in `git`\'s standard author format'
|
||||||
@ -1084,7 +1078,6 @@ __fish_brew_complete_arg 'pr-pull' -l workflows -d 'Retrieve artifacts from the
|
|||||||
|
|
||||||
__fish_brew_complete_cmd 'pr-upload' 'Apply the bottle commit and publish bottles to a host'
|
__fish_brew_complete_cmd 'pr-upload' 'Apply the bottle commit and publish bottles to a host'
|
||||||
__fish_brew_complete_arg 'pr-upload' -l archive-item -d 'Upload to the specified Internet Archive item (default: `homebrew`)'
|
__fish_brew_complete_arg 'pr-upload' -l archive-item -d 'Upload to the specified Internet Archive item (default: `homebrew`)'
|
||||||
__fish_brew_complete_arg 'pr-upload' -l bintray-org -d 'Upload to the specified Bintray organisation (default: `homebrew`)'
|
|
||||||
__fish_brew_complete_arg 'pr-upload' -l committer -d 'Specify a committer name and email in `git`\'s standard author format'
|
__fish_brew_complete_arg 'pr-upload' -l committer -d 'Specify a committer name and email in `git`\'s standard author format'
|
||||||
__fish_brew_complete_arg 'pr-upload' -l debug -d 'Display any debugging information'
|
__fish_brew_complete_arg 'pr-upload' -l debug -d 'Display any debugging information'
|
||||||
__fish_brew_complete_arg 'pr-upload' -l dry-run -d 'Print what would be done rather than doing it'
|
__fish_brew_complete_arg 'pr-upload' -l dry-run -d 'Print what would be done rather than doing it'
|
||||||
|
|||||||
@ -177,7 +177,7 @@ __brew_internal_commands() {
|
|||||||
'log:Show the `git log` for formula, or show the log for the Homebrew repository if no formula is provided'
|
'log:Show the `git log` for formula, or show the log for the Homebrew repository if no formula is provided'
|
||||||
'man:Generate Homebrew'\''s manpages'
|
'man:Generate Homebrew'\''s manpages'
|
||||||
'migrate:Migrate renamed packages to new names, where formula are old names of packages'
|
'migrate:Migrate renamed packages to new names, where formula are old names of packages'
|
||||||
'mirror:Reupload the stable URL of a formula to Bintray for use as a mirror'
|
'mirror:Reupload the stable URL of a formula for use as a mirror'
|
||||||
'missing:Check the given formula kegs for missing dependencies'
|
'missing:Check the given formula kegs for missing dependencies'
|
||||||
'options:Show install options specific to formula'
|
'options:Show install options specific to formula'
|
||||||
'outdated:List installed casks and formulae that have an updated version available'
|
'outdated:List installed casks and formulae that have an updated version available'
|
||||||
@ -721,7 +721,7 @@ _brew_dispatch_build_bottle() {
|
|||||||
'(--linux)--macos[Version of macOS the bottle should be built for]' \
|
'(--linux)--macos[Version of macOS the bottle should be built for]' \
|
||||||
'--quiet[Make some output more quiet]' \
|
'--quiet[Make some output more quiet]' \
|
||||||
'--tap[Target tap repository (default: `homebrew/core`)]' \
|
'--tap[Target tap repository (default: `homebrew/core`)]' \
|
||||||
'--upload[Upload built bottles to Bintray]' \
|
'--upload[Upload built bottles]' \
|
||||||
'--verbose[Make some output more verbose]' \
|
'--verbose[Make some output more verbose]' \
|
||||||
'--workflow[Dispatch specified workflow (default: `dispatch-build-bottle.yml`)]' \
|
'--workflow[Dispatch specified workflow (default: `dispatch-build-bottle.yml`)]' \
|
||||||
- formula \
|
- formula \
|
||||||
@ -1191,15 +1191,10 @@ _brew_migrate() {
|
|||||||
# brew mirror
|
# brew mirror
|
||||||
_brew_mirror() {
|
_brew_mirror() {
|
||||||
_arguments \
|
_arguments \
|
||||||
'--bintray-org[Upload to the specified Bintray organisation (default: `homebrew`)]' \
|
|
||||||
'--bintray-repo[Upload to the specified Bintray repository (default: `mirror`)]' \
|
|
||||||
'--debug[Display any debugging information]' \
|
'--debug[Display any debugging information]' \
|
||||||
'--help[Show this message]' \
|
'--help[Show this message]' \
|
||||||
'--no-publish[Upload to Bintray, but don'\''t publish]' \
|
|
||||||
'--quiet[Make some output more quiet]' \
|
'--quiet[Make some output more quiet]' \
|
||||||
'--verbose[Make some output more verbose]' \
|
'--verbose[Make some output more verbose]'
|
||||||
- formula \
|
|
||||||
'*::formula:__brew_formulae'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# brew missing
|
# brew missing
|
||||||
@ -1301,11 +1296,9 @@ _brew_pr_publish() {
|
|||||||
# brew pr-pull
|
# brew pr-pull
|
||||||
_brew_pr_pull() {
|
_brew_pr_pull() {
|
||||||
_arguments \
|
_arguments \
|
||||||
'(--bintray-org)--archive-item[Upload to the specified Internet Archive item (default: `homebrew`)]' \
|
'--archive-item[Upload to the specified Internet Archive item (default: `homebrew`)]' \
|
||||||
'--artifact[Download artifacts with the specified name (default: `bottles`)]' \
|
'--artifact[Download artifacts with the specified name (default: `bottles`)]' \
|
||||||
'(--clean)--autosquash[Automatically reformat and reword commits in the pull request to our preferred format]' \
|
'(--clean)--autosquash[Automatically reformat and reword commits in the pull request to our preferred format]' \
|
||||||
'--bintray-mirror[Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: `mirror`)]' \
|
|
||||||
'(--archive-item)--bintray-org[Upload to the specified Bintray organisation (default: `homebrew`)]' \
|
|
||||||
'--branch-okay[Do not warn if pulling to a branch besides the repository default (useful for testing)]' \
|
'--branch-okay[Do not warn if pulling to a branch besides the repository default (useful for testing)]' \
|
||||||
'(--autosquash)--clean[Do not amend the commits from pull requests]' \
|
'(--autosquash)--clean[Do not amend the commits from pull requests]' \
|
||||||
'--committer[Specify a committer name and email in `git`'\''s standard author format]' \
|
'--committer[Specify a committer name and email in `git`'\''s standard author format]' \
|
||||||
@ -1332,7 +1325,6 @@ _brew_pr_pull() {
|
|||||||
_brew_pr_upload() {
|
_brew_pr_upload() {
|
||||||
_arguments \
|
_arguments \
|
||||||
'--archive-item[Upload to the specified Internet Archive item (default: `homebrew`)]' \
|
'--archive-item[Upload to the specified Internet Archive item (default: `homebrew`)]' \
|
||||||
'--bintray-org[Upload to the specified Bintray organisation (default: `homebrew`)]' \
|
|
||||||
'--committer[Specify a committer name and email in `git`'\''s standard author format]' \
|
'--committer[Specify a committer name and email in `git`'\''s standard author format]' \
|
||||||
'--debug[Display any debugging information]' \
|
'--debug[Display any debugging information]' \
|
||||||
'--dry-run[Print what would be done rather than doing it]' \
|
'--dry-run[Print what would be done rather than doing it]' \
|
||||||
|
|||||||
@ -1027,7 +1027,7 @@ Build bottles for these formulae with GitHub Actions.
|
|||||||
* `--workflow`:
|
* `--workflow`:
|
||||||
Dispatch specified workflow (default: `dispatch-build-bottle.yml`).
|
Dispatch specified workflow (default: `dispatch-build-bottle.yml`).
|
||||||
* `--upload`:
|
* `--upload`:
|
||||||
Upload built bottles to Bintray.
|
Upload built bottles.
|
||||||
* `--linux`:
|
* `--linux`:
|
||||||
Dispatch bottle for Linux (using GitHub runners).
|
Dispatch bottle for Linux (using GitHub runners).
|
||||||
|
|
||||||
@ -1185,16 +1185,12 @@ Requires write access to the repository.
|
|||||||
Download artifacts with the specified name (default: `bottles`).
|
Download artifacts with the specified name (default: `bottles`).
|
||||||
* `--archive-item`:
|
* `--archive-item`:
|
||||||
Upload to the specified Internet Archive item (default: `homebrew`).
|
Upload to the specified Internet Archive item (default: `homebrew`).
|
||||||
* `--bintray-org`:
|
|
||||||
Upload to the specified Bintray organisation (default: `homebrew`).
|
|
||||||
* `--tap`:
|
* `--tap`:
|
||||||
Target tap repository (default: `homebrew/core`).
|
Target tap repository (default: `homebrew/core`).
|
||||||
* `--root-url`:
|
* `--root-url`:
|
||||||
Use the specified *`URL`* as the root of the bottle's URL instead of Homebrew's default.
|
Use the specified *`URL`* as the root of the bottle's URL instead of Homebrew's default.
|
||||||
* `--root-url-using`:
|
* `--root-url-using`:
|
||||||
Use the specified download strategy class for downloading the bottle's URL instead of Homebrew's default.
|
Use the specified download strategy class for downloading the bottle's URL instead of Homebrew's default.
|
||||||
* `--bintray-mirror`:
|
|
||||||
Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: `mirror`).
|
|
||||||
* `--workflows`:
|
* `--workflows`:
|
||||||
Retrieve artifacts from the specified workflow (default: `tests.yml`). Can be a comma-separated list to include multiple workflows.
|
Retrieve artifacts from the specified workflow (default: `tests.yml`). Can be a comma-separated list to include multiple workflows.
|
||||||
* `--ignore-missing-artifacts`:
|
* `--ignore-missing-artifacts`:
|
||||||
@ -1218,8 +1214,6 @@ Apply the bottle commit and publish bottles to a host.
|
|||||||
Specify a committer name and email in `git`'s standard author format.
|
Specify a committer name and email in `git`'s standard author format.
|
||||||
* `--archive-item`:
|
* `--archive-item`:
|
||||||
Upload to the specified Internet Archive item (default: `homebrew`).
|
Upload to the specified Internet Archive item (default: `homebrew`).
|
||||||
* `--bintray-org`:
|
|
||||||
Upload to the specified Bintray organisation (default: `homebrew`).
|
|
||||||
* `--github-org`:
|
* `--github-org`:
|
||||||
Upload to the specified GitHub organisation's GitHub Packages (default: `homebrew`).
|
Upload to the specified GitHub organisation's GitHub Packages (default: `homebrew`).
|
||||||
* `--root-url`:
|
* `--root-url`:
|
||||||
@ -1805,12 +1799,6 @@ example, run `export HOMEBREW_NO_INSECURE_REDIRECT=1` rather than just
|
|||||||
|
|
||||||
*Default:* `$HOME/.bat/config`.
|
*Default:* `$HOME/.bat/config`.
|
||||||
|
|
||||||
- `HOMEBREW_BINTRAY_KEY`
|
|
||||||
<br>Use this API key when accessing the Bintray API (where bottles are stored).
|
|
||||||
|
|
||||||
- `HOMEBREW_BINTRAY_USER`
|
|
||||||
<br>Use this username when accessing the Bintray API (where bottles are stored).
|
|
||||||
|
|
||||||
- `HOMEBREW_BOOTSNAP`
|
- `HOMEBREW_BOOTSNAP`
|
||||||
<br>If set, use Bootsnap to speed up repeated `brew` calls. A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).
|
<br>If set, use Bootsnap to speed up repeated `brew` calls. A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).
|
||||||
|
|
||||||
|
|||||||
@ -1449,7 +1449,7 @@ Dispatch specified workflow (default: \fBdispatch\-build\-bottle\.yml\fR)\.
|
|||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-upload\fR
|
\fB\-\-upload\fR
|
||||||
Upload built bottles to Bintray\.
|
Upload built bottles\.
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-linux\fR
|
\fB\-\-linux\fR
|
||||||
@ -1668,10 +1668,6 @@ Download artifacts with the specified name (default: \fBbottles\fR)\.
|
|||||||
Upload to the specified Internet Archive item (default: \fBhomebrew\fR)\.
|
Upload to the specified Internet Archive item (default: \fBhomebrew\fR)\.
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-bintray\-org\fR
|
|
||||||
Upload to the specified Bintray organisation (default: \fBhomebrew\fR)\.
|
|
||||||
.
|
|
||||||
.TP
|
|
||||||
\fB\-\-tap\fR
|
\fB\-\-tap\fR
|
||||||
Target tap repository (default: \fBhomebrew/core\fR)\.
|
Target tap repository (default: \fBhomebrew/core\fR)\.
|
||||||
.
|
.
|
||||||
@ -1684,10 +1680,6 @@ Use the specified \fIURL\fR as the root of the bottle\'s URL instead of Homebrew
|
|||||||
Use the specified download strategy class for downloading the bottle\'s URL instead of Homebrew\'s default\.
|
Use the specified download strategy class for downloading the bottle\'s URL instead of Homebrew\'s default\.
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-bintray\-mirror\fR
|
|
||||||
Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: \fBmirror\fR)\.
|
|
||||||
.
|
|
||||||
.TP
|
|
||||||
\fB\-\-workflows\fR
|
\fB\-\-workflows\fR
|
||||||
Retrieve artifacts from the specified workflow (default: \fBtests\.yml\fR)\. Can be a comma\-separated list to include multiple workflows\.
|
Retrieve artifacts from the specified workflow (default: \fBtests\.yml\fR)\. Can be a comma\-separated list to include multiple workflows\.
|
||||||
.
|
.
|
||||||
@ -1727,10 +1719,6 @@ Specify a committer name and email in \fBgit\fR\'s standard author format\.
|
|||||||
Upload to the specified Internet Archive item (default: \fBhomebrew\fR)\.
|
Upload to the specified Internet Archive item (default: \fBhomebrew\fR)\.
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-bintray\-org\fR
|
|
||||||
Upload to the specified Bintray organisation (default: \fBhomebrew\fR)\.
|
|
||||||
.
|
|
||||||
.TP
|
|
||||||
\fB\-\-github\-org\fR
|
\fB\-\-github\-org\fR
|
||||||
Upload to the specified GitHub organisation\'s GitHub Packages (default: \fBhomebrew\fR)\.
|
Upload to the specified GitHub organisation\'s GitHub Packages (default: \fBhomebrew\fR)\.
|
||||||
.
|
.
|
||||||
@ -2519,18 +2507,6 @@ Use this as the \fBbat\fR configuration file\.
|
|||||||
\fIDefault:\fR \fB$HOME/\.bat/config\fR\.
|
\fIDefault:\fR \fB$HOME/\.bat/config\fR\.
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
\fBHOMEBREW_BINTRAY_KEY\fR
|
|
||||||
.
|
|
||||||
.br
|
|
||||||
Use this API key when accessing the Bintray API (where bottles are stored)\.
|
|
||||||
.
|
|
||||||
.TP
|
|
||||||
\fBHOMEBREW_BINTRAY_USER\fR
|
|
||||||
.
|
|
||||||
.br
|
|
||||||
Use this username when accessing the Bintray API (where bottles are stored)\.
|
|
||||||
.
|
|
||||||
.TP
|
|
||||||
\fBHOMEBREW_BOOTSNAP\fR
|
\fBHOMEBREW_BOOTSNAP\fR
|
||||||
.
|
.
|
||||||
.br
|
.br
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user