Port Homebrew::DevCmd::BumpCaskPr

This commit is contained in:
Douglas Eichelberger 2024-03-18 15:56:38 -07:00
parent ee0c967ce0
commit ebc458a7fe
2 changed files with 294 additions and 294 deletions

View File

@ -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

View File

@ -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