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.uniq.freeze
|
||||||
end
|
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)
|
def load_formula_or_cask(name, only: nil, method: nil)
|
||||||
if only != :cask
|
if only != :cask
|
||||||
begin
|
begin
|
||||||
|
|||||||
@ -26,6 +26,10 @@ module Homebrew
|
|||||||
switch "-f", "--force",
|
switch "-f", "--force",
|
||||||
description: "Delete all installed versions of <formula>. Uninstall even if <cask> is not " \
|
description: "Delete all installed versions of <formula>. Uninstall even if <cask> is not " \
|
||||||
"installed, overwrite existing files and ignore errors when removing files."
|
"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",
|
switch "--ignore-dependencies",
|
||||||
description: "Don't fail uninstall, even if <formula> is a dependency of any installed "\
|
description: "Don't fail uninstall, even if <formula> is a dependency of any installed "\
|
||||||
"formulae."
|
"formulae."
|
||||||
@ -56,11 +60,19 @@ module Homebrew
|
|||||||
named_args: args.named,
|
named_args: args.named,
|
||||||
)
|
)
|
||||||
|
|
||||||
Cask::Cmd::Uninstall.uninstall_casks(
|
if args.zap?
|
||||||
*casks,
|
Cask::Cmd::Zap.zap_casks(
|
||||||
binaries: EnvConfig.cask_opts_binaries?,
|
*casks,
|
||||||
verbose: args.verbose?,
|
verbose: args.verbose?,
|
||||||
force: args.force?,
|
force: args.force?,
|
||||||
)
|
)
|
||||||
|
else
|
||||||
|
Cask::Cmd::Uninstall.uninstall_casks(
|
||||||
|
*casks,
|
||||||
|
binaries: EnvConfig.cask_opts_binaries?,
|
||||||
|
verbose: args.verbose?,
|
||||||
|
force: args.force?,
|
||||||
|
)
|
||||||
|
end
|
||||||
end
|
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
|
uses
|
||||||
vendor-gems
|
vendor-gems
|
||||||
vendor-install
|
vendor-install
|
||||||
zap
|
|
||||||
|
|||||||
@ -569,6 +569,8 @@ Uninstall a *`formula`* or *`cask`*.
|
|||||||
|
|
||||||
* `-f`, `--force`:
|
* `-f`, `--force`:
|
||||||
Delete all installed versions of *`formula`*. Uninstall even if *`cask`* is not installed, overwrite existing files and ignore errors when removing files.
|
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`:
|
* `--ignore-dependencies`:
|
||||||
Don't fail uninstall, even if *`formula`* is a dependency of any installed formulae.
|
Don't fail uninstall, even if *`formula`* is a dependency of any installed formulae.
|
||||||
* `--formula`:
|
* `--formula`:
|
||||||
@ -677,22 +679,6 @@ specify *`formula`* as a required or recommended dependency for their stable bui
|
|||||||
* `--skip-recommended`:
|
* `--skip-recommended`:
|
||||||
Skip all formulae that specify *`formula`* as `:recommended` type dependency.
|
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`*]
|
### `--cache` [*`options`*] [*`formula`*|*`cask`*]
|
||||||
|
|
||||||
Display Homebrew's download cache. See also `HOMEBREW_CACHE`.
|
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\.
|
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
|
.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
|
\fB\-\-ignore\-dependencies\fR
|
||||||
Don\'t fail uninstall, even if \fIformula\fR is a dependency of any installed formulae\.
|
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
|
\fB\-\-skip\-recommended\fR
|
||||||
Skip all formulae that specify \fIformula\fR as \fB:recommended\fR type dependency\.
|
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]"
|
.SS "\fB\-\-cache\fR [\fIoptions\fR] [\fIformula\fR|\fIcask\fR]"
|
||||||
Display Homebrew\'s download cache\. See also \fBHOMEBREW_CACHE\fR\.
|
Display Homebrew\'s download cache\. See also \fBHOMEBREW_CACHE\fR\.
|
||||||
.
|
.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user