Port Homebrew::Cmd::Reinstall
This commit is contained in:
parent
057f561d2c
commit
d875c970e9
@ -1,12 +1,12 @@
|
||||
# typed: true
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "abstract_command"
|
||||
require "formula_installer"
|
||||
require "development_tools"
|
||||
require "messages"
|
||||
require "install"
|
||||
require "reinstall"
|
||||
require "cli/parser"
|
||||
require "cleanup"
|
||||
require "cask/utils"
|
||||
require "cask/macos"
|
||||
@ -15,9 +15,9 @@ require "upgrade"
|
||||
require "api"
|
||||
|
||||
module Homebrew
|
||||
sig { returns(CLI::Parser) }
|
||||
def self.reinstall_args
|
||||
Homebrew::CLI::Parser.new do
|
||||
module Cmd
|
||||
class Reinstall < AbstractCommand
|
||||
cmd_args do
|
||||
description <<~EOS
|
||||
Uninstall and then reinstall a <formula> or <cask> using the same options it was
|
||||
originally installed with, plus any appended options specific to a <formula>.
|
||||
@ -106,13 +106,13 @@ module Homebrew
|
||||
|
||||
named_args [:formula, :cask], min: 1
|
||||
end
|
||||
end
|
||||
|
||||
def self.reinstall
|
||||
args = reinstall_args.parse
|
||||
|
||||
formulae, casks = args.named.to_formulae_and_casks(method: :resolve)
|
||||
.partition { |o| o.is_a?(Formula) }
|
||||
sig { override.void }
|
||||
def run
|
||||
formulae, casks = T.cast(
|
||||
args.named.to_formulae_and_casks(method: :resolve).partition { _1.is_a?(Formula) },
|
||||
[T::Array[Formula], T::Array[Cask::Cask]],
|
||||
)
|
||||
|
||||
if args.build_from_source?
|
||||
unless DevelopmentTools.installed?
|
||||
@ -133,7 +133,7 @@ module Homebrew
|
||||
next
|
||||
end
|
||||
Migrator.migrate_if_needed(formula, force: args.force?)
|
||||
reinstall_formula(
|
||||
Homebrew.reinstall_formula(
|
||||
formula,
|
||||
flags: args.flags_only,
|
||||
installed_on_request: args.named.present?,
|
||||
@ -184,3 +184,5 @@ module Homebrew
|
||||
Homebrew.messages.display_messages(display_times: args.display_times?)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "extend/ENV"
|
||||
require "cmd/reinstall"
|
||||
require "cmd/shared_examples/args_parse"
|
||||
|
||||
RSpec.describe "brew reinstall" do
|
||||
RSpec.describe Homebrew::Cmd::Reinstall do
|
||||
it_behaves_like "parseable arguments"
|
||||
|
||||
it "reinstalls a Formula", :integration_test do
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user