diff --git a/Library/Homebrew/cask/cmd.rb b/Library/Homebrew/cask/cmd.rb index 1518b9518d..127995b692 100644 --- a/Library/Homebrew/cask/cmd.rb +++ b/Library/Homebrew/cask/cmd.rb @@ -12,6 +12,7 @@ require "cask/config" require "cask/cmd/abstract_command" require "cask/cmd/audit" require "cask/cmd/install" +require "cask/cmd/reinstall" module Cask # Implementation of the `brew cask` command-line interface. diff --git a/Library/Homebrew/cask/cmd/reinstall.rb b/Library/Homebrew/cask/cmd/reinstall.rb new file mode 100644 index 0000000000..9637805450 --- /dev/null +++ b/Library/Homebrew/cask/cmd/reinstall.rb @@ -0,0 +1,56 @@ +# typed: true +# frozen_string_literal: true + +module Cask + class Cmd + # Cask implementation of the `brew reinstall` command. + # + # @api private + class Reinstall < Install + extend T::Sig + + sig { void } + def run + self.class.reinstall_casks( + *casks, + binaries: args.binaries?, + verbose: args.verbose?, + force: args.force?, + skip_cask_deps: args.skip_cask_deps?, + require_sha: args.require_sha?, + quarantine: args.quarantine?, + zap: args.zap?, + ) + end + + def self.reinstall_casks( + *casks, + verbose: nil, + force: nil, + skip_cask_deps: nil, + binaries: nil, + require_sha: nil, + quarantine: nil, + zap: nil + ) + require "cask/installer" + + options = { + binaries: binaries, + verbose: verbose, + force: force, + skip_cask_deps: skip_cask_deps, + require_sha: require_sha, + quarantine: quarantine, + zap: zap, + }.compact + + options[:quarantine] = true if options[:quarantine].nil? + + casks.each do |cask| + Installer.new(cask, **options).reinstall + end + end + end + end +end diff --git a/Library/Homebrew/cask/reinstall.rb b/Library/Homebrew/cask/reinstall.rb deleted file mode 100644 index aa4c361542..0000000000 --- a/Library/Homebrew/cask/reinstall.rb +++ /dev/null @@ -1,34 +0,0 @@ -# typed: true -# frozen_string_literal: true - -module Cask - # - # @api private - class Reinstall - def self.reinstall_casks( - *casks, - verbose: nil, - force: nil, - skip_cask_deps: nil, - binaries: nil, - require_sha: nil, - quarantine: nil, - zap: nil - ) - require "cask/installer" - - quarantine = true if quarantine.nil? - - casks.each do |cask| - Installer.new(cask, - binaries: binaries, - verbose: verbose, - force: force, - skip_cask_deps: skip_cask_deps, - require_sha: require_sha, - quarantine: quarantine, - zap: zap).reinstall - end - end - end -end diff --git a/Library/Homebrew/cmd/reinstall.rb b/Library/Homebrew/cmd/reinstall.rb index ca6cff1cb6..8eeb2f370c 100644 --- a/Library/Homebrew/cmd/reinstall.rb +++ b/Library/Homebrew/cmd/reinstall.rb @@ -150,7 +150,7 @@ module Homebrew ) if casks.any? - Cask::Reinstall.reinstall_casks( + Cask::Cmd::Reinstall.reinstall_casks( *casks, binaries: args.binaries?, verbose: args.verbose?, diff --git a/Library/Homebrew/test/cask/reinstall_spec.rb b/Library/Homebrew/test/cask/cmd/reinstall_spec.rb similarity index 83% rename from Library/Homebrew/test/cask/reinstall_spec.rb rename to Library/Homebrew/test/cask/cmd/reinstall_spec.rb index 1a7d8ee8ad..8ddb81d00f 100644 --- a/Library/Homebrew/test/cask/reinstall_spec.rb +++ b/Library/Homebrew/test/cask/cmd/reinstall_spec.rb @@ -1,10 +1,7 @@ # typed: false # frozen_string_literal: true -require "cask/installer" -require "cask/reinstall" - -describe Cask::Reinstall, :cask do +describe Cask::Cmd::Reinstall, :cask do it "displays the reinstallation progress" do caffeine = Cask::CaskLoader.load(cask_path("local-caffeine")) @@ -23,7 +20,7 @@ describe Cask::Reinstall, :cask do EOS expect do - described_class.reinstall_casks(Cask::CaskLoader.load("local-caffeine")) + described_class.run("local-caffeine") end.to output(output).to_stdout end @@ -48,7 +45,7 @@ describe Cask::Reinstall, :cask do EOS expect do - described_class.reinstall_casks(Cask::CaskLoader.load("local-caffeine"), zap: true) + described_class.run("local-caffeine", "--zap") end.to output(output).to_stdout end @@ -57,14 +54,14 @@ describe Cask::Reinstall, :cask do expect(Cask::CaskLoader.load(cask_path("local-transmission"))).to be_installed - described_class.reinstall_casks(Cask::CaskLoader.load("local-transmission")) + described_class.run("local-transmission") expect(Cask::CaskLoader.load(cask_path("local-transmission"))).to be_installed end it "allows reinstalling a non installed Cask" do expect(Cask::CaskLoader.load(cask_path("local-transmission"))).not_to be_installed - described_class.reinstall_casks(Cask::CaskLoader.load("local-transmission")) + described_class.run("local-transmission") expect(Cask::CaskLoader.load(cask_path("local-transmission"))).to be_installed end end