Port Homebrew::DevCmd::BumpUnversionedCask
This commit is contained in:
parent
1097496a06
commit
c70dc040c6
@ -1,4 +1,4 @@
|
|||||||
# typed: true
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "timeout"
|
require "timeout"
|
||||||
@ -11,11 +11,11 @@ require "tap"
|
|||||||
require "unversioned_cask_checker"
|
require "unversioned_cask_checker"
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
extend SystemCommand::Mixin
|
module DevCmd
|
||||||
|
class BumpUnversionedCask < AbstractCommand
|
||||||
|
include SystemCommand::Mixin
|
||||||
|
|
||||||
sig { returns(CLI::Parser) }
|
cmd_args do
|
||||||
def self.bump_unversioned_casks_args
|
|
||||||
Homebrew::CLI::Parser.new do
|
|
||||||
description <<~EOS
|
description <<~EOS
|
||||||
Check all casks with unversioned URLs in a given <tap> for updates.
|
Check all casks with unversioned URLs in a given <tap> for updates.
|
||||||
EOS
|
EOS
|
||||||
@ -28,16 +28,13 @@ module Homebrew
|
|||||||
|
|
||||||
named_args [:cask, :tap], min: 1, without_api: true
|
named_args [:cask, :tap], min: 1, without_api: true
|
||||||
end
|
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"])
|
Homebrew.install_bundler_gems!(groups: ["bump_unversioned_casks"])
|
||||||
|
|
||||||
state_file = if args.state_file.present?
|
state_file = if args.state_file.present?
|
||||||
Pathname(args.state_file).expand_path
|
Pathname(T.must(args.state_file)).expand_path
|
||||||
else
|
else
|
||||||
HOMEBREW_CACHE/"bump_unversioned_casks.json"
|
HOMEBREW_CACHE/"bump_unversioned_casks.json"
|
||||||
end
|
end
|
||||||
@ -75,7 +72,7 @@ module Homebrew
|
|||||||
|
|
||||||
key = cask.full_name
|
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
|
next unless new_state
|
||||||
|
|
||||||
@ -85,11 +82,13 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
sig {
|
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]))
|
.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}"
|
ohai "Checking #{cask.full_name}"
|
||||||
|
|
||||||
unversioned_cask_checker = UnversionedCaskChecker.new(cask)
|
unversioned_cask_checker = UnversionedCaskChecker.new(cask)
|
||||||
@ -150,7 +149,7 @@ module Homebrew
|
|||||||
cask.sourcefile_path
|
cask.sourcefile_path
|
||||||
]
|
]
|
||||||
|
|
||||||
if dry_run
|
if args.dry_run?
|
||||||
bump_cask_pr_args << "--dry-run"
|
bump_cask_pr_args << "--dry-run"
|
||||||
oh1 "Would bump #{cask} from #{cask.version} to #{version}"
|
oh1 "Would bump #{cask} from #{cask.version} to #{version}"
|
||||||
else
|
else
|
||||||
@ -175,3 +174,5 @@ module Homebrew
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "cmd/shared_examples/args_parse"
|
require "cmd/shared_examples/args_parse"
|
||||||
|
require "dev-cmd/bump-unversioned-casks"
|
||||||
|
|
||||||
RSpec.describe "brew bump-unversioned-casks" do
|
RSpec.describe Homebrew::DevCmd::BumpUnversionedCask do
|
||||||
it_behaves_like "parseable arguments"
|
it_behaves_like "parseable arguments", argv: ["foo"]
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user