Port Homebrew::DevCmd::BumpCaskPr
This commit is contained in:
parent
ee0c967ce0
commit
ebc458a7fe
@ -1,6 +1,7 @@
|
|||||||
# typed: strict
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "abstract_command"
|
||||||
require "bump_version_parser"
|
require "bump_version_parser"
|
||||||
require "cask"
|
require "cask"
|
||||||
require "cask/download"
|
require "cask/download"
|
||||||
@ -8,11 +9,9 @@ require "cli/parser"
|
|||||||
require "utils/tar"
|
require "utils/tar"
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
module_function
|
module DevCmd
|
||||||
|
class BumpCaskPr < AbstractCommand
|
||||||
sig { returns(CLI::Parser) }
|
cmd_args do
|
||||||
def bump_cask_pr_args
|
|
||||||
Homebrew::CLI::Parser.new do
|
|
||||||
description <<~EOS
|
description <<~EOS
|
||||||
Create a pull request to update <cask> with a new version.
|
Create a pull request to update <cask> with a new version.
|
||||||
|
|
||||||
@ -61,12 +60,9 @@ module Homebrew
|
|||||||
|
|
||||||
named_args :cask, number: 1, without_api: true
|
named_args :cask, number: 1, without_api: true
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
sig { void }
|
|
||||||
def bump_cask_pr
|
|
||||||
args = bump_cask_pr_args.parse
|
|
||||||
|
|
||||||
|
sig { override.void }
|
||||||
|
def run
|
||||||
odeprecated "brew bump-cask-pr --online" if args.online?
|
odeprecated "brew bump-cask-pr --online" if args.online?
|
||||||
odisabled "brew bump-cask-pr --force" if args.force?
|
odisabled "brew bump-cask-pr --force" if args.force?
|
||||||
|
|
||||||
@ -123,7 +119,7 @@ module Homebrew
|
|||||||
raise UsageError, "No `--version`, `--url` or `--sha256` argument specified!"
|
raise UsageError, "No `--version`, `--url` or `--sha256` argument specified!"
|
||||||
end
|
end
|
||||||
|
|
||||||
check_pull_requests(cask, args:, new_version:)
|
check_pull_requests(cask, new_version:)
|
||||||
|
|
||||||
replacement_pairs ||= []
|
replacement_pairs ||= []
|
||||||
branch_name = "bump-#{cask.token}"
|
branch_name = "bump-#{cask.token}"
|
||||||
@ -166,8 +162,8 @@ module Homebrew
|
|||||||
read_only_run: args.dry_run?,
|
read_only_run: args.dry_run?,
|
||||||
silent: args.quiet?)
|
silent: args.quiet?)
|
||||||
|
|
||||||
run_cask_audit(cask, old_contents, args:)
|
run_cask_audit(cask, old_contents)
|
||||||
run_cask_style(cask, old_contents, args:)
|
run_cask_style(cask, old_contents)
|
||||||
|
|
||||||
pr_info = {
|
pr_info = {
|
||||||
branch_name:,
|
branch_name:,
|
||||||
@ -180,6 +176,8 @@ module Homebrew
|
|||||||
GitHub.create_bump_pr(pr_info, args:)
|
GitHub.create_bump_pr(pr_info, args:)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
sig { params(version: Cask::DSL::Version, cask: Cask::Cask).returns(Cask::DSL::Version) }
|
sig { params(version: Cask::DSL::Version, cask: Cask::Cask).returns(Cask::DSL::Version) }
|
||||||
def shortened_version(version, cask:)
|
def shortened_version(version, cask:)
|
||||||
if version.before_comma == cask.version.before_comma
|
if version.before_comma == cask.version.before_comma
|
||||||
@ -253,8 +251,8 @@ module Homebrew
|
|||||||
replacement_pairs
|
replacement_pairs
|
||||||
end
|
end
|
||||||
|
|
||||||
sig { params(cask: Cask::Cask, args: CLI::Args, new_version: BumpVersionParser).void }
|
sig { params(cask: Cask::Cask, new_version: BumpVersionParser).void }
|
||||||
def check_pull_requests(cask, args:, new_version:)
|
def check_pull_requests(cask, new_version:)
|
||||||
tap_remote_repo = cask.tap.full_name || cask.tap.remote_repo
|
tap_remote_repo = cask.tap.full_name || cask.tap.remote_repo
|
||||||
|
|
||||||
GitHub.check_for_duplicate_pull_requests(cask.token, tap_remote_repo,
|
GitHub.check_for_duplicate_pull_requests(cask.token, tap_remote_repo,
|
||||||
@ -279,8 +277,8 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
sig { params(cask: Cask::Cask, old_contents: String, args: T.untyped).void }
|
sig { params(cask: Cask::Cask, old_contents: String).void }
|
||||||
def run_cask_audit(cask, old_contents, args:)
|
def run_cask_audit(cask, old_contents)
|
||||||
if args.dry_run?
|
if args.dry_run?
|
||||||
if args.no_audit?
|
if args.no_audit?
|
||||||
ohai "Skipping `brew audit`"
|
ohai "Skipping `brew audit`"
|
||||||
@ -302,8 +300,8 @@ module Homebrew
|
|||||||
odie "`brew audit` failed!"
|
odie "`brew audit` failed!"
|
||||||
end
|
end
|
||||||
|
|
||||||
sig { params(cask: Cask::Cask, old_contents: String, args: T.untyped).void }
|
sig { params(cask: Cask::Cask, old_contents: String).void }
|
||||||
def run_cask_style(cask, old_contents, args:)
|
def run_cask_style(cask, old_contents)
|
||||||
if args.dry_run?
|
if args.dry_run?
|
||||||
if args.no_style?
|
if args.no_style?
|
||||||
ohai "Skipping `brew style --fix`"
|
ohai "Skipping `brew style --fix`"
|
||||||
@ -325,3 +323,5 @@ module Homebrew
|
|||||||
odie "`brew style --fix` failed!"
|
odie "`brew style --fix` failed!"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
require "cmd/shared_examples/args_parse"
|
require "cmd/shared_examples/args_parse"
|
||||||
require "dev-cmd/bump-cask-pr"
|
require "dev-cmd/bump-cask-pr"
|
||||||
|
|
||||||
RSpec.describe "brew bump-cask-pr" do
|
RSpec.describe Homebrew::DevCmd::BumpCaskPr do
|
||||||
it_behaves_like "parseable arguments"
|
it_behaves_like "parseable arguments", argv: ["foo"]
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user