Add --zap flag to brew uninstall and remove brew zap.
This commit is contained in:
parent
f4b4fdac98
commit
2c47678b05
@ -58,10 +58,6 @@ module Homebrew
|
||||
end.uniq.freeze
|
||||
end
|
||||
|
||||
sig do
|
||||
params(name: String, only: T.nilable(Symbol), method: T.nilable(Symbol))
|
||||
.returns(T.any(Formula, Cask::Cask, Keg, T::Array[Keg]))
|
||||
end
|
||||
def load_formula_or_cask(name, only: nil, method: nil)
|
||||
if only != :cask
|
||||
begin
|
||||
|
||||
@ -26,6 +26,10 @@ module Homebrew
|
||||
switch "-f", "--force",
|
||||
description: "Delete all installed versions of <formula>. Uninstall even if <cask> is not " \
|
||||
"installed, overwrite existing files and ignore errors when removing files."
|
||||
switch "--zap",
|
||||
description: "Remove all files associated with a <cask>. " \
|
||||
"*May remove files which are shared between applications.*"
|
||||
conflicts "--formula", "--zap"
|
||||
switch "--ignore-dependencies",
|
||||
description: "Don't fail uninstall, even if <formula> is a dependency of any installed "\
|
||||
"formulae."
|
||||
@ -56,11 +60,19 @@ module Homebrew
|
||||
named_args: args.named,
|
||||
)
|
||||
|
||||
Cask::Cmd::Uninstall.uninstall_casks(
|
||||
*casks,
|
||||
binaries: EnvConfig.cask_opts_binaries?,
|
||||
verbose: args.verbose?,
|
||||
force: args.force?,
|
||||
)
|
||||
if args.zap?
|
||||
Cask::Cmd::Zap.zap_casks(
|
||||
*casks,
|
||||
verbose: args.verbose?,
|
||||
force: args.force?,
|
||||
)
|
||||
else
|
||||
Cask::Cmd::Uninstall.uninstall_casks(
|
||||
*casks,
|
||||
binaries: EnvConfig.cask_opts_binaries?,
|
||||
verbose: args.verbose?,
|
||||
force: args.force?,
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -1,64 +0,0 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "cask/cmd"
|
||||
require "cask/cask_loader"
|
||||
require "uninstall"
|
||||
|
||||
module Homebrew
|
||||
extend T::Sig
|
||||
|
||||
module_function
|
||||
|
||||
sig { returns(CLI::Parser) }
|
||||
def zap_args
|
||||
Homebrew::CLI::Parser.new do
|
||||
usage_banner <<~EOS
|
||||
`zap` [<options>] <formula>|<cask>
|
||||
|
||||
Remove all files associated with the given <formula> or <cask>.
|
||||
Implicitly also performs all actions associated with `uninstall`.
|
||||
|
||||
*May remove files which are shared between applications.*
|
||||
EOS
|
||||
switch "-f", "--force",
|
||||
description: "Delete all installed versions of <formula>. Uninstall even if <cask> is not " \
|
||||
"installed, overwrite existing files and ignore errors when removing files."
|
||||
switch "--ignore-dependencies",
|
||||
description: "Don't fail uninstall, even if <formula> is a dependency of any installed "\
|
||||
"formulae."
|
||||
|
||||
switch "--formula", "--formulae",
|
||||
description: "Treat all named arguments as formulae."
|
||||
switch "--cask", "--casks",
|
||||
description: "Treat all named arguments as casks."
|
||||
conflicts "--formula", "--cask"
|
||||
|
||||
min_named :formula_or_cask
|
||||
end
|
||||
end
|
||||
|
||||
def zap
|
||||
args = zap_args.parse
|
||||
|
||||
only = :formula if args.formula? && !args.cask?
|
||||
only = :cask if args.cask? && !args.formula?
|
||||
|
||||
all_kegs, casks = args.named.to_kegs_to_casks(only: only, ignore_unavailable: args.force?, all_kegs: args.force?)
|
||||
kegs_by_rack = all_kegs.group_by(&:rack)
|
||||
|
||||
Uninstall.uninstall_kegs(
|
||||
kegs_by_rack,
|
||||
force: args.force?,
|
||||
ignore_dependencies: args.ignore_dependencies?,
|
||||
named_args: args.named,
|
||||
)
|
||||
|
||||
Cask::Cmd::Zap.zap_casks(
|
||||
*casks,
|
||||
binaries: EnvConfig.cask_opts_binaries?,
|
||||
verbose: args.verbose?,
|
||||
force: args.force?,
|
||||
)
|
||||
end
|
||||
end
|
||||
@ -104,4 +104,3 @@ upgrade
|
||||
uses
|
||||
vendor-gems
|
||||
vendor-install
|
||||
zap
|
||||
|
||||
@ -569,6 +569,8 @@ Uninstall a *`formula`* or *`cask`*.
|
||||
|
||||
* `-f`, `--force`:
|
||||
Delete all installed versions of *`formula`*. Uninstall even if *`cask`* is not installed, overwrite existing files and ignore errors when removing files.
|
||||
* `--zap`:
|
||||
Remove all files associated with a *`cask`*. *May remove files which are shared between applications.*
|
||||
* `--ignore-dependencies`:
|
||||
Don't fail uninstall, even if *`formula`* is a dependency of any installed formulae.
|
||||
* `--formula`:
|
||||
@ -677,22 +679,6 @@ specify *`formula`* as a required or recommended dependency for their stable bui
|
||||
* `--skip-recommended`:
|
||||
Skip all formulae that specify *`formula`* as `:recommended` type dependency.
|
||||
|
||||
### `zap` [*`options`*] *`formula`*|*`cask`*
|
||||
|
||||
Remove all files associated with the given *`formula`* or *`cask`*.
|
||||
Implicitly also performs all actions associated with `uninstall`.
|
||||
|
||||
*May remove files which are shared between applications.*
|
||||
|
||||
* `-f`, `--force`:
|
||||
Delete all installed versions of *`formula`*. Uninstall even if *`cask`* is not installed, overwrite existing files and ignore errors when removing files.
|
||||
* `--ignore-dependencies`:
|
||||
Don't fail uninstall, even if *`formula`* is a dependency of any installed formulae.
|
||||
* `--formula`:
|
||||
Treat all named arguments as formulae.
|
||||
* `--cask`:
|
||||
Treat all named arguments as casks.
|
||||
|
||||
### `--cache` [*`options`*] [*`formula`*|*`cask`*]
|
||||
|
||||
Display Homebrew's download cache. See also `HOMEBREW_CACHE`.
|
||||
|
||||
@ -790,6 +790,10 @@ Uninstall a \fIformula\fR or \fIcask\fR\.
|
||||
Delete all installed versions of \fIformula\fR\. Uninstall even if \fIcask\fR is not installed, overwrite existing files and ignore errors when removing files\.
|
||||
.
|
||||
.TP
|
||||
\fB\-\-zap\fR
|
||||
Remove all files associated with a \fIcask\fR\. \fIMay remove files which are shared between applications\.\fR
|
||||
.
|
||||
.TP
|
||||
\fB\-\-ignore\-dependencies\fR
|
||||
Don\'t fail uninstall, even if \fIformula\fR is a dependency of any installed formulae\.
|
||||
.
|
||||
@ -940,28 +944,6 @@ Include all formulae that specify \fIformula\fR as \fB:optional\fR type dependen
|
||||
\fB\-\-skip\-recommended\fR
|
||||
Skip all formulae that specify \fIformula\fR as \fB:recommended\fR type dependency\.
|
||||
.
|
||||
.SS "\fBzap\fR [\fIoptions\fR] \fIformula\fR|\fIcask\fR"
|
||||
Remove all files associated with the given \fIformula\fR or \fIcask\fR\. Implicitly also performs all actions associated with \fBuninstall\fR\.
|
||||
.
|
||||
.P
|
||||
\fIMay remove files which are shared between applications\.\fR
|
||||
.
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-force\fR
|
||||
Delete all installed versions of \fIformula\fR\. Uninstall even if \fIcask\fR is not installed, overwrite existing files and ignore errors when removing files\.
|
||||
.
|
||||
.TP
|
||||
\fB\-\-ignore\-dependencies\fR
|
||||
Don\'t fail uninstall, even if \fIformula\fR is a dependency of any installed formulae\.
|
||||
.
|
||||
.TP
|
||||
\fB\-\-formula\fR
|
||||
Treat all named arguments as formulae\.
|
||||
.
|
||||
.TP
|
||||
\fB\-\-cask\fR
|
||||
Treat all named arguments as casks\.
|
||||
.
|
||||
.SS "\fB\-\-cache\fR [\fIoptions\fR] [\fIformula\fR|\fIcask\fR]"
|
||||
Display Homebrew\'s download cache\. See also \fBHOMEBREW_CACHE\fR\.
|
||||
.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user