Skip to content

Commit

Permalink
Merge pull request #7401 from dawidd6/pr-upload
Browse files Browse the repository at this point in the history
Add pr-upload command
  • Loading branch information
MikeMcQuaid committed Apr 20, 2020
2 parents f074e3a + 3dd5a74 commit c4fed07
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 0 deletions.
43 changes: 43 additions & 0 deletions Library/Homebrew/dev-cmd/pr-upload.rb
@@ -0,0 +1,43 @@
# frozen_string_literal: true

require "cli/parser"
require "bintray"

module Homebrew
module_function

def pr_upload_args
Homebrew::CLI::Parser.new do
usage_banner <<~EOS
`pr-upload` [<options>]
Apply the bottle commit and publish bottles to Bintray.
EOS
switch "--no-publish",
description: "Apply the bottle commit and upload the bottles, but don't publish them."
switch "--dry-run", "-n",
description: "Print what would be done rather than doing it."
flag "--bintray-org=",
description: "Upload to the specified Bintray organisation (default: homebrew)."
end
end

def pr_upload
pr_upload_args.parse

bintray_org = args.bintray_org || "homebrew"
bintray = Bintray.new(org: bintray_org)

if args.dry_run?
puts "brew bottle --merge --write #{Dir["*.json"].join " "}"
else
system HOMEBREW_BREW_FILE, "bottle", "--merge", "--write", *Dir["*.json"]
end

if args.dry_run?
puts "Upload bottles described by these JSON files to Bintray:\n #{Dir["*.json"].join("\n ")}"
else
bintray.upload_bottle_json Dir["*.json"], publish_package: !args.no_publish?
end
end
end
7 changes: 7 additions & 0 deletions Library/Homebrew/test/dev-cmd/pr-upload_spec.rb
@@ -0,0 +1,7 @@
# frozen_string_literal: true

require "cmd/shared_examples/args_parse"

describe "Homebrew.pr_upload_args" do
it_behaves_like "parseable arguments"
end
11 changes: 11 additions & 0 deletions docs/Manpage.md
Expand Up @@ -898,6 +898,17 @@ repository.
* `--tap`:
Target tap repository (default: homebrew/core).

### `pr-upload` [*`options`*]

Apply the bottle commit and publish bottles to Bintray.

* `--no-publish`:
Apply the bottle commit and upload the bottles, but don't publish them.
* `-n`, `--dry-run`:
Print what would be done rather than doing it.
* `--bintray-org`:
Upload to the specified Bintray organisation (default: homebrew).

### `prof` *`command`*

Run Homebrew with the Ruby profiler, e.g. `brew prof readall`.
Expand Down
15 changes: 15 additions & 0 deletions manpages/brew.1
Expand Up @@ -1163,6 +1163,21 @@ Upload to the specified Bintray organisation (default: homebrew)\.
\fB\-\-tap\fR
Target tap repository (default: homebrew/core)\.
.
.SS "\fBpr\-upload\fR [\fIoptions\fR]"
Apply the bottle commit and publish bottles to Bintray\.
.
.TP
\fB\-\-no\-publish\fR
Apply the bottle commit and upload the bottles, but don\'t publish them\.
.
.TP
\fB\-n\fR, \fB\-\-dry\-run\fR
Print what would be done rather than doing it\.
.
.TP
\fB\-\-bintray\-org\fR
Upload to the specified Bintray organisation (default: homebrew)\.
.
.SS "\fBprof\fR \fIcommand\fR"
Run Homebrew with the Ruby profiler, e\.g\. \fBbrew prof readall\fR\.
.
Expand Down

0 comments on commit c4fed07

Please sign in to comment.