Merge pull request #14864 from hyuraku/remove-cask/cmd/zap

Remove `cask/cmd/zap`
This commit is contained in:
Mike McQuaid 2023-03-06 21:33:42 +00:00 committed by GitHub
commit bb73c3d19e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 22 additions and 76 deletions

View File

@ -16,7 +16,6 @@ require "cask/cmd/install"
require "cask/cmd/reinstall"
require "cask/cmd/uninstall"
require "cask/cmd/upgrade"
require "cask/cmd/zap"
module Cask
# Implementation of the `brew cask` command-line interface.

View File

@ -1,42 +0,0 @@
# typed: false
# frozen_string_literal: true
module Cask
class Cmd
# Cask implementation for the `brew uninstall` command.
#
# @api private
class Zap < AbstractCommand
extend T::Sig
def self.parser
super do
switch "--force",
description: "Ignore errors when removing files."
end
end
sig { void }
def run
self.class.zap_casks(*casks, verbose: args.verbose?, force: args.force?)
end
sig { params(casks: Cask, force: T.nilable(T::Boolean), verbose: T.nilable(T::Boolean)).void }
def self.zap_casks(
*casks,
force: nil,
verbose: nil
)
require "cask/installer"
casks.each do |cask|
odebug "Zapping Cask #{cask}"
raise CaskNotInstalledError, cask if !cask.installed? && !force
Installer.new(cask, verbose: verbose, force: force).zap
end
end
end
end
end

View File

@ -8,6 +8,8 @@ require "migrator"
require "cli/parser"
require "cask/cmd"
require "cask/cask_loader"
require "cask/exceptions"
require "cask/installer"
require "uninstall"
module Homebrew
@ -66,11 +68,13 @@ module Homebrew
)
if args.zap?
T.unsafe(Cask::Cmd::Zap).zap_casks(
*casks,
verbose: args.verbose?,
force: args.force?,
)
casks.each do |cask|
odebug "Zapping Cask #{cask}"
raise Cask::CaskNotInstalledError, cask if !cask.installed? && !args.force?
Cask::Installer.new(cask, verbose: args.verbose?, force: args.force?).zap
end
else
T.unsafe(Cask::Cmd::Uninstall).uninstall_casks(
*casks,

View File

@ -1,27 +0,0 @@
# typed: false
# frozen_string_literal: true
describe Cask::Cmd::Zap, :cask do
it "shows an error when a bad Cask is provided" do
expect { described_class.run("notacask") }
.to raise_error(Cask::CaskUnavailableError, /is unavailable/)
end
it "can zap and unlink multiple Casks at once" do
caffeine = Cask::CaskLoader.load(cask_path("local-caffeine"))
transmission = Cask::CaskLoader.load(cask_path("local-transmission"))
Cask::Installer.new(caffeine).install
Cask::Installer.new(transmission).install
expect(caffeine).to be_installed
expect(transmission).to be_installed
described_class.run("local-caffeine", "local-transmission")
expect(caffeine).not_to be_installed
expect(caffeine.config.appdir.join("Caffeine.app")).not_to be_a_symlink
expect(transmission).not_to be_installed
expect(transmission.config.appdir.join("Transmission.app")).not_to be_a_symlink
end
end

View File

@ -251,6 +251,18 @@ describe Cask::Installer, :cask do
expect(Cask::CaskLoader.load(path)).to be_installed
end
end
it "zap method reinstall cask" do
caffeine = Cask::CaskLoader.load(cask_path("local-caffeine"))
described_class.new(caffeine).install
expect(caffeine).to be_installed
described_class.new(caffeine).zap
expect(caffeine).not_to be_installed
expect(caffeine.config.appdir.join("Caffeine.app")).not_to be_a_symlink
end
end
describe "uninstall" do

View File

@ -19,7 +19,7 @@ describe Array do
it "converts an array to a sentence with a custom last word connector" do
expect(["one", "two", "three"].to_sentence(last_word_connector: ", and also "))
.to eq("one, two, and also three")
.to eq("one, two, and also three")
expect(["one", "two", "three"].to_sentence(last_word_connector: " ")).to eq("one, two three")
expect(["one", "two", "three"].to_sentence(last_word_connector: " and ")).to eq("one, two and three")
end