Cleanup usage string

Include only global args and list the specific options if there are two or fewer.
This commit is contained in:
Rylan Polster 2021-01-16 00:35:43 -05:00
parent d1f3e39b7b
commit 6f69aab6cf
No known key found for this signature in database
GPG Key ID: 46A744940CFF4D64
3 changed files with 93 additions and 82 deletions

View File

@ -128,6 +128,7 @@ module Homebrew
@conflicts = [] @conflicts = []
@switch_sources = {} @switch_sources = {}
@processed_options = [] @processed_options = []
@non_global_processed_options = []
@named_args_type = nil @named_args_type = nil
@max_named_args = nil @max_named_args = nil
@min_named_args = nil @min_named_args = nil
@ -152,7 +153,7 @@ module Homebrew
description = option_to_description(*names) if description.nil? description = option_to_description(*names) if description.nil?
if replacement.nil? if replacement.nil?
process_option(*names, description) process_option(*names, description, type: :switch)
else else
description += " (disabled#{"; replaced by #{replacement}" if replacement.present?})" description += " (disabled#{"; replaced by #{replacement}" if replacement.present?})"
end end
@ -198,7 +199,7 @@ module Homebrew
def comma_array(name, description: nil) def comma_array(name, description: nil)
name = name.chomp "=" name = name.chomp "="
description = option_to_description(name) if description.nil? description = option_to_description(name) if description.nil?
process_option(name, description) process_option(name, description, type: :comma_array)
@parser.on(name, OptionParser::REQUIRED_ARGUMENT, Array, *wrap_option_desc(description)) do |list| @parser.on(name, OptionParser::REQUIRED_ARGUMENT, Array, *wrap_option_desc(description)) do |list|
@args[option_to_name(name)] = list @args[option_to_name(name)] = list
end end
@ -213,7 +214,7 @@ module Homebrew
names.map! { |name| name.chomp "=" } names.map! { |name| name.chomp "=" }
description = option_to_description(*names) if description.nil? description = option_to_description(*names) if description.nil?
if replacement.nil? if replacement.nil?
process_option(*names, description) process_option(*names, description, type: :flag)
else else
description += " (disabled#{"; replaced by #{replacement}" if replacement.present?})" description += " (disabled#{"; replaced by #{replacement}" if replacement.present?})"
end end
@ -456,10 +457,16 @@ module Homebrew
"`#{command_alias.tr("_", "-")}`" if command == @command_name "`#{command_alias.tr("_", "-")}`" if command == @command_name
end.compact.sort end.compact.sort
options = if @processed_options.any? options = if @non_global_processed_options.empty?
""
elsif @non_global_processed_options.count > 2
" [<options>]" " [<options>]"
else else
"" @non_global_processed_options.map do |option, type|
next " [<#{option}>]" if type == :switch
" [<#{option}>`=`<#{option_to_name(option)}>]"
end.join
end end
named_args = "" named_args = ""
@ -611,10 +618,14 @@ module Homebrew
raise exception if exception raise exception if exception
end end
def process_option(*args) def process_option(*args, type:)
option, = @parser.make_switch(args) option, = @parser.make_switch(args)
@processed_options.reject! { |existing| existing.second == option.long.first } if option.long.first.present? @processed_options.reject! { |existing| existing.second == option.long.first } if option.long.first.present?
@processed_options << [option.short.first, option.long.first, option.arg, option.desc.first] @processed_options << [option.short.first, option.long.first, option.arg, option.desc.first]
return if self.class.global_options.include? [option.short.first, option.long.first, option.desc.first]
@non_global_processed_options << [option.long.first || option.short.first, type]
end end
def split_non_options(argv) def split_non_options(argv)

View File

@ -44,7 +44,7 @@ If no search term is provided, all locally available formulae are listed.
## COMMANDS ## COMMANDS
### `analytics` [*`options`*] [*`subcommand`*] ### `analytics` [*`subcommand`*]
Control Homebrew's anonymous aggregate user behaviour analytics. Control Homebrew's anonymous aggregate user behaviour analytics.
Read more at <https://docs.brew.sh/Analytics>. Read more at <https://docs.brew.sh/Analytics>.
@ -58,7 +58,7 @@ Read more at <https://docs.brew.sh/Analytics>.
`brew analytics regenerate-uuid` `brew analytics regenerate-uuid`
<br>Regenerate the UUID used for Homebrew's analytics. <br>Regenerate the UUID used for Homebrew's analytics.
### `autoremove` [*`options`*] ### `autoremove` [*`--dry-run`*]
Uninstall formulae that were only installed as a dependency of another formula and are now no longer needed. Uninstall formulae that were only installed as a dependency of another formula and are now no longer needed.
@ -85,7 +85,7 @@ only do this for the given formulae and casks. Removes all downloads more than
* `--prune-prefix`: * `--prune-prefix`:
Only prune the symlinks and directories from the prefix and remove no other files. Only prune the symlinks and directories from the prefix and remove no other files.
### `commands` [*`options`*] ### `commands` [*`--quiet`*] [*`--include-aliases`*]
Show lists of built-in and external commands. Show lists of built-in and external commands.
@ -94,7 +94,7 @@ Show lists of built-in and external commands.
* `--include-aliases`: * `--include-aliases`:
Include aliases of internal commands. Include aliases of internal commands.
### `completions` [*`options`*] [*`subcommand`*] ### `completions` [*`subcommand`*]
Control whether Homebrew automatically links external tap shell completion files. Control whether Homebrew automatically links external tap shell completion files.
Read more at <https://docs.brew.sh/Shell-Completion>. Read more at <https://docs.brew.sh/Shell-Completion>.
@ -105,7 +105,7 @@ Read more at <https://docs.brew.sh/Shell-Completion>.
`brew completions` (`link`|`unlink`) `brew completions` (`link`|`unlink`)
<br>Link or unlink Homebrew's completions. <br>Link or unlink Homebrew's completions.
### `config`, `--config` [*`options`*] ### `config`, `--config`
Show Homebrew and system configuration info useful for debugging. If you file Show Homebrew and system configuration info useful for debugging. If you file
a bug report, you will be required to provide this information. a bug report, you will be required to provide this information.
@ -162,7 +162,7 @@ first search, making that search slower than subsequent ones.
* `-d`, `--description`: * `-d`, `--description`:
Search just descriptions for *`text`*. If *`text`* is flanked by slashes, it is interpreted as a regular expression. Search just descriptions for *`text`*. If *`text`* is flanked by slashes, it is interpreted as a regular expression.
### `doctor`, `dr` [*`options`*] [*`diagnostic_check`* ...] ### `doctor`, `dr` [*`--list-checks`*] [*`--audit-debug`*] [*`diagnostic_check`* ...]
Check your system for potential problems. Will exit with a non-zero status Check your system for potential problems. Will exit with a non-zero status
if any potential problems are found. Please note that these warnings are just if any potential problems are found. Please note that these warnings are just
@ -219,7 +219,7 @@ error message if no logs are found.
* `-p`, `--private`: * `-p`, `--private`:
The Gist will be marked private and will not appear in listings but will be accessible with its link. The Gist will be marked private and will not appear in listings but will be accessible with its link.
### `home`, `homepage` [*`options`*] [*`formula`*|*`cask`* ...] ### `home`, `homepage` [*`--formula`*] [*`--cask`*] [*`formula`*|*`cask`* ...]
Open a *`formula`* or *`cask`*'s homepage in a browser, or open Open a *`formula`* or *`cask`*'s homepage in a browser, or open
Homebrew's own homepage if no argument is provided. Homebrew's own homepage if no argument is provided.
@ -313,7 +313,7 @@ the installed formulae or, every 30 days, for all formulae.
* `--skip-cask-deps`: * `--skip-cask-deps`:
Skip installing cask dependencies. Skip installing cask dependencies.
### `leaves` [*`options`*] ### `leaves`
List installed formulae that are not dependencies of another installed formula. List installed formulae that are not dependencies of another installed formula.
@ -374,7 +374,7 @@ if no formula is provided.
* `-n`, `--max-count`: * `-n`, `--max-count`:
Print only a specified number of commits. Print only a specified number of commits.
### `migrate` [*`options`*] *`installed_formula`* [...] ### `migrate` [*`--force`*] *`installed_formula`* [...]
Migrate renamed packages to new names, where *`formula`* are old names of Migrate renamed packages to new names, where *`formula`* are old names of
packages. packages.
@ -382,7 +382,7 @@ packages.
* `-f`, `--force`: * `-f`, `--force`:
Treat installed *`formula`* and provided *`formula`* as if they are from the same taps and migrate them anyway. Treat installed *`formula`* and provided *`formula`* as if they are from the same taps and migrate them anyway.
### `missing` [*`options`*] [*`formula`* ...] ### `missing` [*`--hide`*`=`*`hide`*] [*`formula`* ...]
Check the given *`formula`* kegs for missing dependencies. If no *`formula`* are Check the given *`formula`* kegs for missing dependencies. If no *`formula`* are
provided, check all kegs. Will exit with a non-zero status if any kegs are found provided, check all kegs. Will exit with a non-zero status if any kegs are found
@ -424,16 +424,16 @@ information is displayed in interactive shells, and suppressed otherwise.
* `--greedy`: * `--greedy`:
Print outdated casks with `auto_updates` or `version :latest`. Print outdated casks with `auto_updates` or `version :latest`.
### `pin` [*`options`*] *`installed_formula`* [...] ### `pin` *`installed_formula`* [...]
Pin the specified *`formula`*, preventing them from being upgraded when Pin the specified *`formula`*, preventing them from being upgraded when
issuing the `brew upgrade` *`formula`* command. See also `unpin`. issuing the `brew upgrade` *`formula`* command. See also `unpin`.
### `postinstall` [*`options`*] *`installed_formula`* [...] ### `postinstall` *`installed_formula`* [...]
Rerun the post-install steps for *`formula`*. Rerun the post-install steps for *`formula`*.
### `readall` [*`options`*] [*`tap`* ...] ### `readall` [*`--aliases`*] [*`--syntax`*] [*`tap`* ...]
Import all items from the specified *`tap`*, or from all installed taps if none is provided. Import all items from the specified *`tap`*, or from all installed taps if none is provided.
This can be useful for debugging issues across all items when making This can be useful for debugging issues across all items when making
@ -550,7 +550,7 @@ using protocols other than HTTPS, e.g. SSH, git, HTTP, FTP(S), rsync.
* `--list-pinned`: * `--list-pinned`:
List all pinned taps. List all pinned taps.
### `tap-info` [*`options`*] [*`tap`* ...] ### `tap-info` [*`--installed`*] [*`--json`*`=`*`json`*] [*`tap`* ...]
Show detailed information about one or more *`tap`*s. Show detailed information about one or more *`tap`*s.
@ -576,7 +576,7 @@ Uninstall a *`formula`* or *`cask`*.
* `--cask`: * `--cask`:
Treat all named arguments as casks. Treat all named arguments as casks.
### `unlink` [*`options`*] *`installed_formula`* [...] ### `unlink` [*`--dry-run`*] *`installed_formula`* [...]
Remove symlinks for *`formula`* from Homebrew's prefix. This can be useful Remove symlinks for *`formula`* from Homebrew's prefix. This can be useful
for temporarily disabling a formula: for temporarily disabling a formula:
@ -585,12 +585,12 @@ for temporarily disabling a formula:
* `-n`, `--dry-run`: * `-n`, `--dry-run`:
List files which would be unlinked without actually unlinking or deleting any files. List files which would be unlinked without actually unlinking or deleting any files.
### `unpin` [*`options`*] *`installed_formula`* [...] ### `unpin` *`installed_formula`* [...]
Unpin *`formula`*, allowing them to be upgraded by `brew upgrade` *`formula`*. Unpin *`formula`*, allowing them to be upgraded by `brew upgrade` *`formula`*.
See also `pin`. See also `pin`.
### `untap` [*`options`*] *`tap`* [...] ### `untap` *`tap`* [...]
Remove a tapped formula repository. Remove a tapped formula repository.
@ -696,14 +696,14 @@ If *`formula`* is provided, display the file or directory used to cache *`formul
* `--cask`: * `--cask`:
Only show cache files for casks. Only show cache files for casks.
### `--caskroom` [*`options`*] [*`cask`* ...] ### `--caskroom` [*`cask`* ...]
Display Homebrew's Caskroom path. Display Homebrew's Caskroom path.
If *`cask`* is provided, display the location in the Caskroom where *`cask`* If *`cask`* is provided, display the location in the Caskroom where *`cask`*
would be installed, without any sort of versioned directory as the last path. would be installed, without any sort of versioned directory as the last path.
### `--cellar` [*`options`*] [*`formula`* ...] ### `--cellar` [*`formula`* ...]
Display Homebrew's Cellar path. *Default:* `$(brew --prefix)/Cellar`, or if Display Homebrew's Cellar path. *Default:* `$(brew --prefix)/Cellar`, or if
that directory doesn't exist, `$(brew --repository)/Cellar`. that directory doesn't exist, `$(brew --repository)/Cellar`.
@ -711,7 +711,7 @@ that directory doesn't exist, `$(brew --repository)/Cellar`.
If *`formula`* is provided, display the location in the Cellar where *`formula`* If *`formula`* is provided, display the location in the Cellar where *`formula`*
would be installed, without any sort of versioned directory as the last path. would be installed, without any sort of versioned directory as the last path.
### `--env` [*`options`*] [*`formula`* ...] ### `--env` [*`--shell`*`=`*`shell`*] [*`--plain`*] [*`formula`* ...]
Summarise Homebrew's build environment as a plain list. Summarise Homebrew's build environment as a plain list.
@ -723,7 +723,7 @@ the list is formatted for export to `bash`(1) unless `--plain` is passed.
* `--plain`: * `--plain`:
Generate plain output even when piped. Generate plain output even when piped.
### `--prefix` [*`options`*] [*`formula`* ...] ### `--prefix` [*`--unbrewed`*] [*`formula`* ...]
Display Homebrew's install path. *Default:* Display Homebrew's install path. *Default:*
@ -737,13 +737,13 @@ is or would be installed.
* `--unbrewed`: * `--unbrewed`:
List files in Homebrew's prefix not installed by Homebrew. List files in Homebrew's prefix not installed by Homebrew.
### `--repository` [*`options`*] [*`tap`* ...] ### `--repository` [*`tap`* ...]
Display where Homebrew's `.git` directory is located. Display where Homebrew's `.git` directory is located.
If *`user`*`/`*`repo`* are provided, display where tap *`user`*`/`*`repo`*'s directory is located. If *`user`*`/`*`repo`* are provided, display where tap *`user`*`/`*`repo`*'s directory is located.
### `--version` [*`options`*] ### `--version`
Print the version numbers of Homebrew, Homebrew/homebrew-core and Homebrew/homebrew-cask Print the version numbers of Homebrew, Homebrew/homebrew-core and Homebrew/homebrew-cask
(if tapped) to standard output. (if tapped) to standard output.
@ -821,7 +821,7 @@ value, while `--no-rebuild` will remove it.
* `--root-url`: * `--root-url`:
Use the specified *`URL`* as the root of the bottle's URL instead of Homebrew's default. Use the specified *`URL`* as the root of the bottle's URL instead of Homebrew's default.
### `bump` [*`options`*] [*`formula`* ...] ### `bump` [*`--limit`*`=`*`limit`*] [*`formula`* ...]
Display out-of-date brew formulae and the latest version available. Display out-of-date brew formulae and the latest version available.
Also displays whether a pull request has been opened with the URL. Also displays whether a pull request has been opened with the URL.
@ -915,7 +915,7 @@ nor vice versa. It must use whichever style specification the formula already us
* `-f`, `--force`: * `-f`, `--force`:
Ignore duplicate open PRs. Remove all mirrors if `--mirror` was not specified. Ignore duplicate open PRs. Remove all mirrors if `--mirror` was not specified.
### `bump-revision` [*`options`*] *`formula`* [...] ### `bump-revision` [*`--dry-run`*] [*`--message`*`=`*`message`*] *`formula`* [...]
Create a commit to increment the revision of *`formula`*. If no revision is Create a commit to increment the revision of *`formula`*. If no revision is
present, "revision 1" will be added. present, "revision 1" will be added.
@ -936,7 +936,7 @@ Check all casks with unversioned URLs in a given *`tap`* for updates.
* `--state-file`: * `--state-file`:
File for caching state. File for caching state.
### `cat` [*`options`*] *`formula`*|*`cask`* ### `cat` [*`--formula`*] [*`--cask`*] *`formula`*|*`cask`*
Display the source of a *`formula`* or *`cask`*. Display the source of a *`formula`* or *`cask`*.
@ -945,7 +945,7 @@ Display the source of a *`formula`* or *`cask`*.
* `--cask`: * `--cask`:
Treat all named arguments as casks. Treat all named arguments as casks.
### `command` [*`options`*] *`command`* [...] ### `command` *`command`* [...]
Display the path to the file being used when invoking `brew` *`cmd`*. Display the path to the file being used when invoking `brew` *`cmd`*.
@ -1009,7 +1009,7 @@ Build bottles for these formulae with GitHub Actions.
* `--upload`: * `--upload`:
Upload built bottles to Bintray. Upload built bottles to Bintray.
### `edit` [*`options`*] [*`formula`*|*`cask`* ...] ### `edit` [*`--formula`*] [*`--cask`*] [*`formula`*|*`cask`* ...]
Open a *`formula`* or *`cask`* in the editor set by `EDITOR` or `HOMEBREW_EDITOR`, Open a *`formula`* or *`cask`* in the editor set by `EDITOR` or `HOMEBREW_EDITOR`,
or open the Homebrew repository for editing if no formula is provided. or open the Homebrew repository for editing if no formula is provided.
@ -1019,7 +1019,7 @@ or open the Homebrew repository for editing if no formula is provided.
* `--cask`: * `--cask`:
Treat all named arguments as casks. Treat all named arguments as casks.
### `extract` [*`options`*] *`formula`* ... ### `extract` [*`--version`*`=`*`version`*] [*`--force`*] *`formula`* ...
Look through repository history to find the most recent version of *`formula`* and Look through repository history to find the most recent version of *`formula`* and
create a copy in *`tap`*`/Formula/`*`formula`*`@`*`version`*`.rb`. If the tap is not create a copy in *`tap`*`/Formula/`*`formula`*`@`*`version`*`.rb`. If the tap is not
@ -1032,15 +1032,15 @@ a formula from a tap that is not `homebrew/core` use its fully-qualified form of
* `-f`, `--force`: * `-f`, `--force`:
Overwrite the destination formula if it already exists. Overwrite the destination formula if it already exists.
### `formula` [*`options`*] *`formula`* [...] ### `formula` *`formula`* [...]
Display the path where *`formula`* is located. Display the path where *`formula`* is located.
### `install-bundler-gems` [*`options`*] ### `install-bundler-gems`
Install Homebrew's Bundler gems. Install Homebrew's Bundler gems.
### `irb` [*`options`*] ### `irb` [*`--examples`*] [*`--pry`*]
Enter the interactive Homebrew Ruby shell. Enter the interactive Homebrew Ruby shell.
@ -1088,7 +1088,7 @@ casks to check is taken from `HOMEBREW_LIVECHECK_WATCHLIST` or
* `--cask`: * `--cask`:
Only check casks. Only check casks.
### `man` [*`options`*] ### `man` [*`--fail-if-changed`*] [*`--link`*]
Generate Homebrew's manpages. Generate Homebrew's manpages.
@ -1199,7 +1199,7 @@ Apply the bottle commit and publish bottles to Bintray or GitHub Releases.
* `--root-url`: * `--root-url`:
Use the specified *`URL`* as the root of the bottle's URL instead of Homebrew's default. Use the specified *`URL`* as the root of the bottle's URL instead of Homebrew's default.
### `prof` [*`options`*] [*`command`* ...] ### `prof` [*`--stackprof`*] [*`command`* ...]
Run Homebrew with a Ruby profiler, e.g. `brew prof readall`. Run Homebrew with a Ruby profiler, e.g. `brew prof readall`.
@ -1233,7 +1233,7 @@ Run a Ruby instance with Homebrew's libraries loaded, e.g.
* `-e`: * `-e`:
Execute the given text string as a script. Execute the given text string as a script.
### `sh` [*`options`*] [*`file`*] ### `sh` [*`--env`*`=`*`env`*] [*`--cmd`*`=`*`cmd`*] [*`file`*]
Homebrew build environment that uses years-battle-hardened Homebrew build environment that uses years-battle-hardened
build logic to help your `./configure && make && make install` build logic to help your `./configure && make && make install`
@ -1246,7 +1246,7 @@ which build systems would not find otherwise.
* `-c`, `--cmd`: * `-c`, `--cmd`:
Execute commands in a non-interactive shell. Execute commands in a non-interactive shell.
### `sponsors` [*`options`*] ### `sponsors`
Print a Markdown summary of Homebrew's GitHub Sponsors, suitable for pasting into a README. Print a Markdown summary of Homebrew's GitHub Sponsors, suitable for pasting into a README.
@ -1364,7 +1364,7 @@ working directory.
* `-f`, `--force`: * `-f`, `--force`:
Overwrite the destination directory if it already exists. Overwrite the destination directory if it already exists.
### `update-license-data` [*`options`*] ### `update-license-data` [*`--fail-if-not-changed`*]
Update SPDX license data in the Homebrew repository. Update SPDX license data in the Homebrew repository.
@ -1404,7 +1404,7 @@ If no options are passed, use `origin/master` as the start commit.
* `--before`: * `--before`:
Use the commit at the specified *`date`* as the start commit. Use the commit at the specified *`date`* as the start commit.
### `vendor-gems` [*`options`*] ### `vendor-gems` [*`--update`*`=`*`update`*]
Install and commit Homebrew's vendored gems. Install and commit Homebrew's vendored gems.

View File

@ -38,7 +38,7 @@ Perform a substring search of cask tokens and formula names for \fItext\fR\. If
. .
.SH "COMMANDS" .SH "COMMANDS"
. .
.SS "\fBanalytics\fR [\fIoptions\fR] [\fIsubcommand\fR]" .SS "\fBanalytics\fR [\fIsubcommand\fR]"
Control Homebrew\'s anonymous aggregate user behaviour analytics\. Read more at \fIhttps://docs\.brew\.sh/Analytics\fR\. Control Homebrew\'s anonymous aggregate user behaviour analytics\. Read more at \fIhttps://docs\.brew\.sh/Analytics\fR\.
. .
.P .P
@ -53,7 +53,7 @@ Control Homebrew\'s anonymous aggregate user behaviour analytics\. Read more at
\fBbrew analytics regenerate\-uuid\fR \fBbrew analytics regenerate\-uuid\fR
Regenerate the UUID used for Homebrew\'s analytics\. Regenerate the UUID used for Homebrew\'s analytics\.
. .
.SS "\fBautoremove\fR [\fIoptions\fR]" .SS "\fBautoremove\fR [\fI\-\-dry\-run\fR]"
Uninstall formulae that were only installed as a dependency of another formula and are now no longer needed\. Uninstall formulae that were only installed as a dependency of another formula and are now no longer needed\.
. .
.TP .TP
@ -82,7 +82,7 @@ Scrub the cache, including downloads for even the latest versions\. Note downloa
\fB\-\-prune\-prefix\fR \fB\-\-prune\-prefix\fR
Only prune the symlinks and directories from the prefix and remove no other files\. Only prune the symlinks and directories from the prefix and remove no other files\.
. .
.SS "\fBcommands\fR [\fIoptions\fR]" .SS "\fBcommands\fR [\fI\-\-quiet\fR] [\fI\-\-include\-aliases\fR]"
Show lists of built\-in and external commands\. Show lists of built\-in and external commands\.
. .
.TP .TP
@ -93,7 +93,7 @@ List only the names of commands without category headers\.
\fB\-\-include\-aliases\fR \fB\-\-include\-aliases\fR
Include aliases of internal commands\. Include aliases of internal commands\.
. .
.SS "\fBcompletions\fR [\fIoptions\fR] [\fIsubcommand\fR]" .SS "\fBcompletions\fR [\fIsubcommand\fR]"
Control whether Homebrew automatically links external tap shell completion files\. Read more at \fIhttps://docs\.brew\.sh/Shell\-Completion\fR\. Control whether Homebrew automatically links external tap shell completion files\. Read more at \fIhttps://docs\.brew\.sh/Shell\-Completion\fR\.
. .
.P .P
@ -104,7 +104,7 @@ Control whether Homebrew automatically links external tap shell completion files
\fBbrew completions\fR (\fBlink\fR|\fBunlink\fR) \fBbrew completions\fR (\fBlink\fR|\fBunlink\fR)
Link or unlink Homebrew\'s completions\. Link or unlink Homebrew\'s completions\.
. .
.SS "\fBconfig\fR, \fB\-\-config\fR [\fIoptions\fR]" .SS "\fBconfig\fR, \fB\-\-config\fR"
Show Homebrew and system configuration info useful for debugging\. If you file a bug report, you will be required to provide this information\. Show Homebrew and system configuration info useful for debugging\. If you file a bug report, you will be required to provide this information\.
. .
.SS "\fBdeps\fR [\fIoptions\fR] [\fIformula\fR|\fIcask\fR \.\.\.]" .SS "\fBdeps\fR [\fIoptions\fR] [\fIformula\fR|\fIcask\fR \.\.\.]"
@ -189,7 +189,7 @@ Search just names for \fItext\fR\. If \fItext\fR is flanked by slashes, it is in
\fB\-d\fR, \fB\-\-description\fR \fB\-d\fR, \fB\-\-description\fR
Search just descriptions for \fItext\fR\. If \fItext\fR is flanked by slashes, it is interpreted as a regular expression\. Search just descriptions for \fItext\fR\. If \fItext\fR is flanked by slashes, it is interpreted as a regular expression\.
. .
.SS "\fBdoctor\fR, \fBdr\fR [\fIoptions\fR] [\fIdiagnostic_check\fR \.\.\.]" .SS "\fBdoctor\fR, \fBdr\fR [\fI\-\-list\-checks\fR] [\fI\-\-audit\-debug\fR] [\fIdiagnostic_check\fR \.\.\.]"
Check your system for potential problems\. Will exit with a non\-zero status if any potential problems are found\. Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue\. If everything you use Homebrew for is working fine: please don\'t worry or file an issue; just ignore this\. Check your system for potential problems\. Will exit with a non\-zero status if any potential problems are found\. Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue\. If everything you use Homebrew for is working fine: please don\'t worry or file an issue; just ignore this\.
. .
.TP .TP
@ -265,7 +265,7 @@ Automatically create a new issue in the appropriate GitHub repository after crea
\fB\-p\fR, \fB\-\-private\fR \fB\-p\fR, \fB\-\-private\fR
The Gist will be marked private and will not appear in listings but will be accessible with its link\. The Gist will be marked private and will not appear in listings but will be accessible with its link\.
. .
.SS "\fBhome\fR, \fBhomepage\fR [\fIoptions\fR] [\fIformula\fR|\fIcask\fR \.\.\.]" .SS "\fBhome\fR, \fBhomepage\fR [\fI\-\-formula\fR] [\fI\-\-cask\fR] [\fIformula\fR|\fIcask\fR \.\.\.]"
Open a \fIformula\fR or \fIcask\fR\'s homepage in a browser, or open Homebrew\'s own homepage if no argument is provided\. Open a \fIformula\fR or \fIcask\fR\'s homepage in a browser, or open Homebrew\'s own homepage if no argument is provided\.
. .
.TP .TP
@ -424,7 +424,7 @@ Disable/enable quarantining of downloads (default: enabled)\.
\fB\-\-skip\-cask\-deps\fR \fB\-\-skip\-cask\-deps\fR
Skip installing cask dependencies\. Skip installing cask dependencies\.
. .
.SS "\fBleaves\fR [\fIoptions\fR]" .SS "\fBleaves\fR"
List installed formulae that are not dependencies of another installed formula\. List installed formulae that are not dependencies of another installed formula\.
. .
.SS "\fBlink\fR, \fBln\fR [\fIoptions\fR] \fIinstalled_formula\fR [\.\.\.]" .SS "\fBlink\fR, \fBln\fR [\fIoptions\fR] \fIinstalled_formula\fR [\.\.\.]"
@ -511,14 +511,14 @@ Print only one commit\.
\fB\-n\fR, \fB\-\-max\-count\fR \fB\-n\fR, \fB\-\-max\-count\fR
Print only a specified number of commits\. Print only a specified number of commits\.
. .
.SS "\fBmigrate\fR [\fIoptions\fR] \fIinstalled_formula\fR [\.\.\.]" .SS "\fBmigrate\fR [\fI\-\-force\fR] \fIinstalled_formula\fR [\.\.\.]"
Migrate renamed packages to new names, where \fIformula\fR are old names of packages\. Migrate renamed packages to new names, where \fIformula\fR are old names of packages\.
. .
.TP .TP
\fB\-f\fR, \fB\-\-force\fR \fB\-f\fR, \fB\-\-force\fR
Treat installed \fIformula\fR and provided \fIformula\fR as if they are from the same taps and migrate them anyway\. Treat installed \fIformula\fR and provided \fIformula\fR as if they are from the same taps and migrate them anyway\.
. .
.SS "\fBmissing\fR [\fIoptions\fR] [\fIformula\fR \.\.\.]" .SS "\fBmissing\fR [\fI\-\-hide\fR\fB=\fR\fIhide\fR] [\fIformula\fR \.\.\.]"
Check the given \fIformula\fR kegs for missing dependencies\. If no \fIformula\fR are provided, check all kegs\. Will exit with a non\-zero status if any kegs are found to be missing dependencies\. Check the given \fIformula\fR kegs for missing dependencies\. If no \fIformula\fR are provided, check all kegs\. Will exit with a non\-zero status if any kegs are found to be missing dependencies\.
. .
.TP .TP
@ -575,13 +575,13 @@ Fetch the upstream repository to detect if the HEAD installation of the formula
\fB\-\-greedy\fR \fB\-\-greedy\fR
Print outdated casks with \fBauto_updates\fR or \fBversion :latest\fR\. Print outdated casks with \fBauto_updates\fR or \fBversion :latest\fR\.
. .
.SS "\fBpin\fR [\fIoptions\fR] \fIinstalled_formula\fR [\.\.\.]" .SS "\fBpin\fR \fIinstalled_formula\fR [\.\.\.]"
Pin the specified \fIformula\fR, preventing them from being upgraded when issuing the \fBbrew upgrade\fR \fIformula\fR command\. See also \fBunpin\fR\. Pin the specified \fIformula\fR, preventing them from being upgraded when issuing the \fBbrew upgrade\fR \fIformula\fR command\. See also \fBunpin\fR\.
. .
.SS "\fBpostinstall\fR [\fIoptions\fR] \fIinstalled_formula\fR [\.\.\.]" .SS "\fBpostinstall\fR \fIinstalled_formula\fR [\.\.\.]"
Rerun the post\-install steps for \fIformula\fR\. Rerun the post\-install steps for \fIformula\fR\.
. .
.SS "\fBreadall\fR [\fIoptions\fR] [\fItap\fR \.\.\.]" .SS "\fBreadall\fR [\fI\-\-aliases\fR] [\fI\-\-syntax\fR] [\fItap\fR \.\.\.]"
Import all items from the specified \fItap\fR, or from all installed taps if none is provided\. This can be useful for debugging issues across all items when making significant changes to \fBformula\.rb\fR, testing the performance of loading all items or checking if any current formulae/casks have Ruby issues\. Import all items from the specified \fItap\fR, or from all installed taps if none is provided\. This can be useful for debugging issues across all items when making significant changes to \fBformula\.rb\fR, testing the performance of loading all items or checking if any current formulae/casks have Ruby issues\.
. .
.TP .TP
@ -746,7 +746,7 @@ Migrate tapped formulae from symlink\-based to directory\-based structure\.
\fB\-\-list\-pinned\fR \fB\-\-list\-pinned\fR
List all pinned taps\. List all pinned taps\.
. .
.SS "\fBtap\-info\fR [\fIoptions\fR] [\fItap\fR \.\.\.]" .SS "\fBtap\-info\fR [\fI\-\-installed\fR] [\fI\-\-json\fR\fB=\fR\fIjson\fR] [\fItap\fR \.\.\.]"
Show detailed information about one or more \fItap\fRs\. Show detailed information about one or more \fItap\fRs\.
. .
.P .P
@ -783,17 +783,17 @@ Treat all named arguments as formulae\.
\fB\-\-cask\fR \fB\-\-cask\fR
Treat all named arguments as casks\. Treat all named arguments as casks\.
. .
.SS "\fBunlink\fR [\fIoptions\fR] \fIinstalled_formula\fR [\.\.\.]" .SS "\fBunlink\fR [\fI\-\-dry\-run\fR] \fIinstalled_formula\fR [\.\.\.]"
Remove symlinks for \fIformula\fR from Homebrew\'s prefix\. This can be useful for temporarily disabling a formula: \fBbrew unlink\fR \fIformula\fR \fB&&\fR \fIcommands\fR \fB&& brew link\fR \fIformula\fR Remove symlinks for \fIformula\fR from Homebrew\'s prefix\. This can be useful for temporarily disabling a formula: \fBbrew unlink\fR \fIformula\fR \fB&&\fR \fIcommands\fR \fB&& brew link\fR \fIformula\fR
. .
.TP .TP
\fB\-n\fR, \fB\-\-dry\-run\fR \fB\-n\fR, \fB\-\-dry\-run\fR
List files which would be unlinked without actually unlinking or deleting any files\. List files which would be unlinked without actually unlinking or deleting any files\.
. .
.SS "\fBunpin\fR [\fIoptions\fR] \fIinstalled_formula\fR [\.\.\.]" .SS "\fBunpin\fR \fIinstalled_formula\fR [\.\.\.]"
Unpin \fIformula\fR, allowing them to be upgraded by \fBbrew upgrade\fR \fIformula\fR\. See also \fBpin\fR\. Unpin \fIformula\fR, allowing them to be upgraded by \fBbrew upgrade\fR \fIformula\fR\. See also \fBpin\fR\.
. .
.SS "\fBuntap\fR [\fIoptions\fR] \fItap\fR [\.\.\.]" .SS "\fBuntap\fR \fItap\fR [\.\.\.]"
Remove a tapped formula repository\. Remove a tapped formula repository\.
. .
.SS "\fBupdate\fR [\fIoptions\fR]" .SS "\fBupdate\fR [\fIoptions\fR]"
@ -952,19 +952,19 @@ Only show cache files for formulae\.
\fB\-\-cask\fR \fB\-\-cask\fR
Only show cache files for casks\. Only show cache files for casks\.
. .
.SS "\fB\-\-caskroom\fR [\fIoptions\fR] [\fIcask\fR \.\.\.]" .SS "\fB\-\-caskroom\fR [\fIcask\fR \.\.\.]"
Display Homebrew\'s Caskroom path\. Display Homebrew\'s Caskroom path\.
. .
.P .P
If \fIcask\fR is provided, display the location in the Caskroom where \fIcask\fR would be installed, without any sort of versioned directory as the last path\. If \fIcask\fR is provided, display the location in the Caskroom where \fIcask\fR would be installed, without any sort of versioned directory as the last path\.
. .
.SS "\fB\-\-cellar\fR [\fIoptions\fR] [\fIformula\fR \.\.\.]" .SS "\fB\-\-cellar\fR [\fIformula\fR \.\.\.]"
Display Homebrew\'s Cellar path\. \fIDefault:\fR \fB$(brew \-\-prefix)/Cellar\fR, or if that directory doesn\'t exist, \fB$(brew \-\-repository)/Cellar\fR\. Display Homebrew\'s Cellar path\. \fIDefault:\fR \fB$(brew \-\-prefix)/Cellar\fR, or if that directory doesn\'t exist, \fB$(brew \-\-repository)/Cellar\fR\.
. .
.P .P
If \fIformula\fR is provided, display the location in the Cellar where \fIformula\fR would be installed, without any sort of versioned directory as the last path\. If \fIformula\fR is provided, display the location in the Cellar where \fIformula\fR would be installed, without any sort of versioned directory as the last path\.
. .
.SS "\fB\-\-env\fR [\fIoptions\fR] [\fIformula\fR \.\.\.]" .SS "\fB\-\-env\fR [\fI\-\-shell\fR\fB=\fR\fIshell\fR] [\fI\-\-plain\fR] [\fIformula\fR \.\.\.]"
Summarise Homebrew\'s build environment as a plain list\. Summarise Homebrew\'s build environment as a plain list\.
. .
.P .P
@ -978,7 +978,7 @@ Generate a list of environment variables for the specified shell, or \fB\-\-shel
\fB\-\-plain\fR \fB\-\-plain\fR
Generate plain output even when piped\. Generate plain output even when piped\.
. .
.SS "\fB\-\-prefix\fR [\fIoptions\fR] [\fIformula\fR \.\.\.]" .SS "\fB\-\-prefix\fR [\fI\-\-unbrewed\fR] [\fIformula\fR \.\.\.]"
Display Homebrew\'s install path\. \fIDefault:\fR Display Homebrew\'s install path\. \fIDefault:\fR
. .
.IP "\(bu" 4 .IP "\(bu" 4
@ -999,13 +999,13 @@ If \fIformula\fR is provided, display the location in the Cellar where \fIformul
\fB\-\-unbrewed\fR \fB\-\-unbrewed\fR
List files in Homebrew\'s prefix not installed by Homebrew\. List files in Homebrew\'s prefix not installed by Homebrew\.
. .
.SS "\fB\-\-repository\fR [\fIoptions\fR] [\fItap\fR \.\.\.]" .SS "\fB\-\-repository\fR [\fItap\fR \.\.\.]"
Display where Homebrew\'s \fB\.git\fR directory is located\. Display where Homebrew\'s \fB\.git\fR directory is located\.
. .
.P .P
If \fIuser\fR\fB/\fR\fIrepo\fR are provided, display where tap \fIuser\fR\fB/\fR\fIrepo\fR\'s directory is located\. If \fIuser\fR\fB/\fR\fIrepo\fR are provided, display where tap \fIuser\fR\fB/\fR\fIrepo\fR\'s directory is located\.
. .
.SS "\fB\-\-version\fR [\fIoptions\fR]" .SS "\fB\-\-version\fR"
Print the version numbers of Homebrew, Homebrew/homebrew\-core and Homebrew/homebrew\-cask (if tapped) to standard output\. Print the version numbers of Homebrew, Homebrew/homebrew\-core and Homebrew/homebrew\-cask (if tapped) to standard output\.
. .
.SH "DEVELOPER COMMANDS" .SH "DEVELOPER COMMANDS"
@ -1124,7 +1124,7 @@ When passed with \fB\-\-write\fR, a new commit will not generated after writing
\fB\-\-root\-url\fR \fB\-\-root\-url\fR
Use the specified \fIURL\fR as the root of the bottle\'s URL instead of Homebrew\'s default\. Use the specified \fIURL\fR as the root of the bottle\'s URL instead of Homebrew\'s default\.
. .
.SS "\fBbump\fR [\fIoptions\fR] [\fIformula\fR \.\.\.]" .SS "\fBbump\fR [\fI\-\-limit\fR\fB=\fR\fIlimit\fR] [\fIformula\fR \.\.\.]"
Display out\-of\-date brew formulae and the latest version available\. Also displays whether a pull request has been opened with the URL\. Display out\-of\-date brew formulae and the latest version available\. Also displays whether a pull request has been opened with the URL\.
. .
.TP .TP
@ -1268,7 +1268,7 @@ Specify the new commit \fIrevision\fR corresponding to the specified git \fItag\
\fB\-f\fR, \fB\-\-force\fR \fB\-f\fR, \fB\-\-force\fR
Ignore duplicate open PRs\. Remove all mirrors if \fB\-\-mirror\fR was not specified\. Ignore duplicate open PRs\. Remove all mirrors if \fB\-\-mirror\fR was not specified\.
. .
.SS "\fBbump\-revision\fR [\fIoptions\fR] \fIformula\fR [\.\.\.]" .SS "\fBbump\-revision\fR [\fI\-\-dry\-run\fR] [\fI\-\-message\fR\fB=\fR\fImessage\fR] \fIformula\fR [\.\.\.]"
Create a commit to increment the revision of \fIformula\fR\. If no revision is present, "revision 1" will be added\. Create a commit to increment the revision of \fIformula\fR\. If no revision is present, "revision 1" will be added\.
. .
.TP .TP
@ -1294,7 +1294,7 @@ Maximum runtime in minutes\.
\fB\-\-state\-file\fR \fB\-\-state\-file\fR
File for caching state\. File for caching state\.
. .
.SS "\fBcat\fR [\fIoptions\fR] \fIformula\fR|\fIcask\fR" .SS "\fBcat\fR [\fI\-\-formula\fR] [\fI\-\-cask\fR] \fIformula\fR|\fIcask\fR"
Display the source of a \fIformula\fR or \fIcask\fR\. Display the source of a \fIformula\fR or \fIcask\fR\.
. .
.TP .TP
@ -1305,7 +1305,7 @@ Treat all named arguments as formulae\.
\fB\-\-cask\fR \fB\-\-cask\fR
Treat all named arguments as casks\. Treat all named arguments as casks\.
. .
.SS "\fBcommand\fR [\fIoptions\fR] \fIcommand\fR [\.\.\.]" .SS "\fBcommand\fR \fIcommand\fR [\.\.\.]"
Display the path to the file being used when invoking \fBbrew\fR \fIcmd\fR\. Display the path to the file being used when invoking \fBbrew\fR \fIcmd\fR\.
. .
.SS "\fBcreate\fR [\fIoptions\fR] \fIURL\fR" .SS "\fBcreate\fR [\fIoptions\fR] \fIURL\fR"
@ -1406,7 +1406,7 @@ Dispatch specified workflow (default: \fBdispatch\-build\-bottle\.yml\fR)\.
\fB\-\-upload\fR \fB\-\-upload\fR
Upload built bottles to Bintray\. Upload built bottles to Bintray\.
. .
.SS "\fBedit\fR [\fIoptions\fR] [\fIformula\fR|\fIcask\fR \.\.\.]" .SS "\fBedit\fR [\fI\-\-formula\fR] [\fI\-\-cask\fR] [\fIformula\fR|\fIcask\fR \.\.\.]"
Open a \fIformula\fR or \fIcask\fR in the editor set by \fBEDITOR\fR or \fBHOMEBREW_EDITOR\fR, or open the Homebrew repository for editing if no formula is provided\. Open a \fIformula\fR or \fIcask\fR in the editor set by \fBEDITOR\fR or \fBHOMEBREW_EDITOR\fR, or open the Homebrew repository for editing if no formula is provided\.
. .
.TP .TP
@ -1417,7 +1417,7 @@ Treat all named arguments as formulae\.
\fB\-\-cask\fR \fB\-\-cask\fR
Treat all named arguments as casks\. Treat all named arguments as casks\.
. .
.SS "\fBextract\fR [\fIoptions\fR] \fIformula\fR \.\.\." .SS "\fBextract\fR [\fI\-\-version\fR\fB=\fR\fIversion\fR] [\fI\-\-force\fR] \fIformula\fR \.\.\."
Look through repository history to find the most recent version of \fIformula\fR and create a copy in \fItap\fR\fB/Formula/\fR\fIformula\fR\fB@\fR\fIversion\fR\fB\.rb\fR\. If the tap is not installed yet, attempt to install/clone the tap before continuing\. To extract a formula from a tap that is not \fBhomebrew/core\fR use its fully\-qualified form of \fIuser\fR\fB/\fR\fIrepo\fR\fB/\fR\fIformula\fR\. Look through repository history to find the most recent version of \fIformula\fR and create a copy in \fItap\fR\fB/Formula/\fR\fIformula\fR\fB@\fR\fIversion\fR\fB\.rb\fR\. If the tap is not installed yet, attempt to install/clone the tap before continuing\. To extract a formula from a tap that is not \fBhomebrew/core\fR use its fully\-qualified form of \fIuser\fR\fB/\fR\fIrepo\fR\fB/\fR\fIformula\fR\.
. .
.TP .TP
@ -1428,13 +1428,13 @@ Extract the specified \fIversion\fR of \fIformula\fR instead of the most recent\
\fB\-f\fR, \fB\-\-force\fR \fB\-f\fR, \fB\-\-force\fR
Overwrite the destination formula if it already exists\. Overwrite the destination formula if it already exists\.
. .
.SS "\fBformula\fR [\fIoptions\fR] \fIformula\fR [\.\.\.]" .SS "\fBformula\fR \fIformula\fR [\.\.\.]"
Display the path where \fIformula\fR is located\. Display the path where \fIformula\fR is located\.
. .
.SS "\fBinstall\-bundler\-gems\fR [\fIoptions\fR]" .SS "\fBinstall\-bundler\-gems\fR"
Install Homebrew\'s Bundler gems\. Install Homebrew\'s Bundler gems\.
. .
.SS "\fBirb\fR [\fIoptions\fR]" .SS "\fBirb\fR [\fI\-\-examples\fR] [\fI\-\-pry\fR]"
Enter the interactive Homebrew Ruby shell\. Enter the interactive Homebrew Ruby shell\.
. .
.TP .TP
@ -1502,7 +1502,7 @@ Only check formulae\.
\fB\-\-cask\fR \fB\-\-cask\fR
Only check casks\. Only check casks\.
. .
.SS "\fBman\fR [\fIoptions\fR]" .SS "\fBman\fR [\fI\-\-fail\-if\-changed\fR] [\fI\-\-link\fR]"
Generate Homebrew\'s manpages\. Generate Homebrew\'s manpages\.
. .
.TP .TP
@ -1676,7 +1676,7 @@ Upload to the specified Bintray organisation (default: \fBhomebrew\fR)\.
\fB\-\-root\-url\fR \fB\-\-root\-url\fR
Use the specified \fIURL\fR as the root of the bottle\'s URL instead of Homebrew\'s default\. Use the specified \fIURL\fR as the root of the bottle\'s URL instead of Homebrew\'s default\.
. .
.SS "\fBprof\fR [\fIoptions\fR] [\fIcommand\fR \.\.\.]" .SS "\fBprof\fR [\fI\-\-stackprof\fR] [\fIcommand\fR \.\.\.]"
Run Homebrew with a Ruby profiler, e\.g\. \fBbrew prof readall\fR\. Run Homebrew with a Ruby profiler, e\.g\. \fBbrew prof readall\fR\.
. .
.TP .TP
@ -1707,7 +1707,7 @@ Load a library using \fBrequire\fR\.
\fB\-e\fR \fB\-e\fR
Execute the given text string as a script\. Execute the given text string as a script\.
. .
.SS "\fBsh\fR [\fIoptions\fR] [\fIfile\fR]" .SS "\fBsh\fR [\fI\-\-env\fR\fB=\fR\fIenv\fR] [\fI\-\-cmd\fR\fB=\fR\fIcmd\fR] [\fIfile\fR]"
Homebrew build environment that uses years\-battle\-hardened build logic to help your \fB\./configure && make && make install\fR and even your \fBgem install\fR succeed\. Especially handy if you run Homebrew in an Xcode\-only configuration since it adds tools like \fBmake\fR to your \fBPATH\fR which build systems would not find otherwise\. Homebrew build environment that uses years\-battle\-hardened build logic to help your \fB\./configure && make && make install\fR and even your \fBgem install\fR succeed\. Especially handy if you run Homebrew in an Xcode\-only configuration since it adds tools like \fBmake\fR to your \fBPATH\fR which build systems would not find otherwise\.
. .
.TP .TP
@ -1718,7 +1718,7 @@ Use the standard \fBPATH\fR instead of superenv\'s when \fBstd\fR is passed\.
\fB\-c\fR, \fB\-\-cmd\fR \fB\-c\fR, \fB\-\-cmd\fR
Execute commands in a non\-interactive shell\. Execute commands in a non\-interactive shell\.
. .
.SS "\fBsponsors\fR [\fIoptions\fR]" .SS "\fBsponsors\fR"
Print a Markdown summary of Homebrew\'s GitHub Sponsors, suitable for pasting into a README\. Print a Markdown summary of Homebrew\'s GitHub Sponsors, suitable for pasting into a README\.
. .
.SS "\fBstyle\fR [\fIoptions\fR] [\fIfile\fR|\fItap\fR|\fIformula\fR|\fIcask\fR \.\.\.]" .SS "\fBstyle\fR [\fIoptions\fR] [\fIfile\fR|\fItap\fR|\fIformula\fR|\fIcask\fR \.\.\.]"
@ -1888,7 +1888,7 @@ Initialise a Git repository in the unpacked source\. This is useful for creating
\fB\-f\fR, \fB\-\-force\fR \fB\-f\fR, \fB\-\-force\fR
Overwrite the destination directory if it already exists\. Overwrite the destination directory if it already exists\.
. .
.SS "\fBupdate\-license\-data\fR [\fIoptions\fR]" .SS "\fBupdate\-license\-data\fR [\fI\-\-fail\-if\-not\-changed\fR]"
Update SPDX license data in the Homebrew repository\. Update SPDX license data in the Homebrew repository\.
. .
.TP .TP
@ -1945,7 +1945,7 @@ Use the specified \fIcommit\fR as the start commit\.
\fB\-\-before\fR \fB\-\-before\fR
Use the commit at the specified \fIdate\fR as the start commit\. Use the commit at the specified \fIdate\fR as the start commit\.
. .
.SS "\fBvendor\-gems\fR [\fIoptions\fR]" .SS "\fBvendor\-gems\fR [\fI\-\-update\fR\fB=\fR\fIupdate\fR]"
Install and commit Homebrew\'s vendored gems\. Install and commit Homebrew\'s vendored gems\.
. .
.TP .TP