Port Homebrew::Cmd::Migrate

This commit is contained in:
Douglas Eichelberger 2024-03-31 19:47:42 -07:00
parent 59adde2069
commit 0cb608a80c
2 changed files with 33 additions and 32 deletions

View File

@ -1,14 +1,14 @@
# typed: true # typed: strict
# frozen_string_literal: true # frozen_string_literal: true
require "abstract_command"
require "migrator" require "migrator"
require "cli/parser"
require "cask/migrator" require "cask/migrator"
module Homebrew module Homebrew
sig { returns(CLI::Parser) } module Cmd
def self.migrate_args class Migrate < AbstractCommand
Homebrew::CLI::Parser.new do cmd_args do
description <<~EOS description <<~EOS
Migrate renamed packages to new names, where <formula> are old names of Migrate renamed packages to new names, where <formula> are old names of
packages. packages.
@ -27,11 +27,9 @@ module Homebrew
named_args [:installed_formula, :installed_cask], min: 1 named_args [:installed_formula, :installed_cask], min: 1
end end
end
def self.migrate
args = migrate_args.parse
sig { override.void }
def run
args.named.to_formulae_and_casks(warn: false).each do |formula_or_cask| args.named.to_formulae_and_casks(warn: false).each do |formula_or_cask|
case formula_or_cask case formula_or_cask
when Formula when Formula
@ -41,4 +39,6 @@ module Homebrew
end end
end end
end end
end
end
end end

View File

@ -1,8 +1,9 @@
# frozen_string_literal: true # frozen_string_literal: true
require "cmd/migrate"
require "cmd/shared_examples/args_parse" require "cmd/shared_examples/args_parse"
RSpec.describe "brew migrate" do RSpec.describe Homebrew::Cmd::Migrate do
it_behaves_like "parseable arguments" it_behaves_like "parseable arguments"
it "migrates a renamed Formula", :integration_test do it "migrates a renamed Formula", :integration_test do