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
# frozen_string_literal: true
require "abstract_command"
require "bump_version_parser"
require "cask"
require "cask/download"
@ -8,11 +9,9 @@ require "cli/parser"
require "utils/tar"
module Homebrew
module_function
sig { returns(CLI::Parser) }
def bump_cask_pr_args
Homebrew::CLI::Parser.new do
module DevCmd
class BumpCaskPr < AbstractCommand
cmd_args do
description <<~EOS
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
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?
odisabled "brew bump-cask-pr --force" if args.force?
@ -123,7 +119,7 @@ module Homebrew
raise UsageError, "No `--version`, `--url` or `--sha256` argument specified!"
end
check_pull_requests(cask, args:, new_version:)
check_pull_requests(cask, new_version:)
replacement_pairs ||= []
branch_name = "bump-#{cask.token}"
@ -166,8 +162,8 @@ module Homebrew
read_only_run: args.dry_run?,
silent: args.quiet?)
run_cask_audit(cask, old_contents, args:)
run_cask_style(cask, old_contents, args:)
run_cask_audit(cask, old_contents)
run_cask_style(cask, old_contents)
pr_info = {
branch_name:,
@ -180,6 +176,8 @@ module Homebrew
GitHub.create_bump_pr(pr_info, args:)
end
private
sig { params(version: Cask::DSL::Version, cask: Cask::Cask).returns(Cask::DSL::Version) }
def shortened_version(version, cask:)
if version.before_comma == cask.version.before_comma
@ -253,8 +251,8 @@ module Homebrew
replacement_pairs
end
sig { params(cask: Cask::Cask, args: CLI::Args, new_version: BumpVersionParser).void }
def check_pull_requests(cask, args:, new_version:)
sig { params(cask: Cask::Cask, new_version: BumpVersionParser).void }
def check_pull_requests(cask, new_version:)
tap_remote_repo = cask.tap.full_name || cask.tap.remote_repo
GitHub.check_for_duplicate_pull_requests(cask.token, tap_remote_repo,
@ -279,8 +277,8 @@ module Homebrew
end
end
sig { params(cask: Cask::Cask, old_contents: String, args: T.untyped).void }
def run_cask_audit(cask, old_contents, args:)
sig { params(cask: Cask::Cask, old_contents: String).void }
def run_cask_audit(cask, old_contents)
if args.dry_run?
if args.no_audit?
ohai "Skipping `brew audit`"
@ -302,8 +300,8 @@ module Homebrew
odie "`brew audit` failed!"
end
sig { params(cask: Cask::Cask, old_contents: String, args: T.untyped).void }
def run_cask_style(cask, old_contents, args:)
sig { params(cask: Cask::Cask, old_contents: String).void }
def run_cask_style(cask, old_contents)
if args.dry_run?
if args.no_style?
ohai "Skipping `brew style --fix`"
@ -324,4 +322,6 @@ module Homebrew
cask.sourcefile_path.atomic_write(old_contents)
odie "`brew style --fix` failed!"
end
end
end
end

View File

@ -3,6 +3,6 @@
require "cmd/shared_examples/args_parse"
require "dev-cmd/bump-cask-pr"
RSpec.describe "brew bump-cask-pr" do
it_behaves_like "parseable arguments"
RSpec.describe Homebrew::DevCmd::BumpCaskPr do
it_behaves_like "parseable arguments", argv: ["foo"]
end