Port Homebrew::DevCmd::BumpUnversionedCask

This commit is contained in:
Douglas Eichelberger 2024-03-18 16:49:26 -07:00
parent 1097496a06
commit c70dc040c6
2 changed files with 153 additions and 151 deletions

View File

@ -1,4 +1,4 @@
# typed: true
# typed: strict
# frozen_string_literal: true
require "timeout"
@ -11,11 +11,11 @@ require "tap"
require "unversioned_cask_checker"
module Homebrew
extend SystemCommand::Mixin
module DevCmd
class BumpUnversionedCask < AbstractCommand
include SystemCommand::Mixin
sig { returns(CLI::Parser) }
def self.bump_unversioned_casks_args
Homebrew::CLI::Parser.new do
cmd_args do
description <<~EOS
Check all casks with unversioned URLs in a given <tap> for updates.
EOS
@ -28,16 +28,13 @@ module Homebrew
named_args [:cask, :tap], min: 1, without_api: true
end
end
sig { void }
def self.bump_unversioned_casks
args = bump_unversioned_casks_args.parse
sig { override.void }
def run
Homebrew.install_bundler_gems!(groups: ["bump_unversioned_casks"])
state_file = if args.state_file.present?
Pathname(args.state_file).expand_path
Pathname(T.must(args.state_file)).expand_path
else
HOMEBREW_CACHE/"bump_unversioned_casks.json"
end
@ -75,7 +72,7 @@ module Homebrew
key = cask.full_name
new_state = bump_unversioned_cask(cask, state: state.fetch(key, {}), dry_run: args.dry_run?)
new_state = bump_unversioned_cask(cask, state: state.fetch(key, {}))
next unless new_state
@ -85,11 +82,13 @@ module Homebrew
end
end
private
sig {
params(cask: Cask::Cask, state: T::Hash[String, T.untyped], dry_run: T.nilable(T::Boolean))
params(cask: Cask::Cask, state: T::Hash[String, T.untyped])
.returns(T.nilable(T::Hash[String, T.untyped]))
}
def self.bump_unversioned_cask(cask, state:, dry_run:)
def bump_unversioned_cask(cask, state:)
ohai "Checking #{cask.full_name}"
unversioned_cask_checker = UnversionedCaskChecker.new(cask)
@ -150,7 +149,7 @@ module Homebrew
cask.sourcefile_path
]
if dry_run
if args.dry_run?
bump_cask_pr_args << "--dry-run"
oh1 "Would bump #{cask} from #{cask.version} to #{version}"
else
@ -174,4 +173,6 @@ module Homebrew
"file_size" => file_size,
}
end
end
end
end

View File

@ -1,7 +1,8 @@
# frozen_string_literal: true
require "cmd/shared_examples/args_parse"
require "dev-cmd/bump-unversioned-casks"
RSpec.describe "brew bump-unversioned-casks" do
it_behaves_like "parseable arguments"
RSpec.describe Homebrew::DevCmd::BumpUnversionedCask do
it_behaves_like "parseable arguments", argv: ["foo"]
end