Merge pull request #3932 from MikeMcQuaid/external-commands-docs
Improve external command documentation
This commit is contained in:
commit
057d3461a9
@ -74,14 +74,13 @@ module Homebrew
|
||||
end
|
||||
|
||||
def command_help(path)
|
||||
help_lines = path.read.lines.grep(/^#:/)
|
||||
help_lines = command_help_lines(path)
|
||||
if help_lines.empty?
|
||||
opoo "No help text in: #{path}" if ARGV.homebrew_developer?
|
||||
HOMEBREW_HELP
|
||||
else
|
||||
help_lines.map do |line|
|
||||
line.slice(2..-1)
|
||||
.sub(/^ \* /, "#{Tty.bold}brew#{Tty.reset} ")
|
||||
line.sub(/^ \* /, "#{Tty.bold}brew#{Tty.reset} ")
|
||||
.gsub(/`(.*?)`/, "#{Tty.bold}\\1#{Tty.reset}")
|
||||
.gsub(%r{<([^\s]+?://[^\s]+?)>}) { |url| Formatter.url(url) }
|
||||
.gsub(/<(.*?)>/, "#{Tty.underline}\\1#{Tty.reset}")
|
||||
|
||||
@ -71,6 +71,9 @@ module Homebrew
|
||||
variables[:former_maintainers] = readme.read[/(Former maintainers .*\.)/, 1]
|
||||
.gsub(/\[([^\]]+)\]\([^)]+\)/, '\1')
|
||||
|
||||
variables[:homebrew_bundle] = help_output(:bundle)
|
||||
variables[:homebrew_services] = help_output(:services)
|
||||
|
||||
ERB.new(template, nil, ">").result(variables.instance_eval { binding })
|
||||
end
|
||||
|
||||
@ -113,6 +116,12 @@ module Homebrew
|
||||
end
|
||||
end
|
||||
|
||||
def help_output(command)
|
||||
tap = Tap.fetch("Homebrew/homebrew-#{command}")
|
||||
tap.install unless tap.installed?
|
||||
command_help_lines(which("brew-#{command}.rb", Tap.cmd_directories))
|
||||
end
|
||||
|
||||
def target_path_to_format(target)
|
||||
case target.basename
|
||||
when /\.md$/ then ["--markdown", "markdown"]
|
||||
|
||||
@ -56,17 +56,21 @@ With `--verbose` or `-v`, many commands print extra debugging information. Note
|
||||
|
||||
## OFFICIAL EXTERNAL COMMANDS
|
||||
|
||||
* `bundle`:
|
||||
Bundler for non-Ruby dependencies from Homebrew:
|
||||
<https://github.com/Homebrew/homebrew-bundle>
|
||||
<%= homebrew_bundle.join("\n ").strip %>
|
||||
|
||||
* `cask`:
|
||||
Install macOS applications distributed as binaries:
|
||||
<https://github.com/caskroom/homebrew-cask>
|
||||
|
||||
* `services`:
|
||||
Integrates Homebrew formulae with macOS's `launchctl`(1) manager:
|
||||
<https://github.com/Homebrew/homebrew-services>
|
||||
Homebrew/homebrew-bundle <https://github.com/Homebrew/homebrew-bundle>
|
||||
|
||||
* `cask` [`--version` | `audit` | `cat` | `cleanup` | `create` | `doctor` | `edit` | `fetch` | `home` | `info`]:
|
||||
Install macOS applications distributed as binaries.
|
||||
|
||||
|
||||
Caskroom/homebrew-cask <https://github.com/caskroom/homebrew-cask>
|
||||
|
||||
<%= homebrew_services.join("\n ").strip %>
|
||||
|
||||
|
||||
Homebrew/homebrew-services <https://github.com/Homebrew/homebrew-services>
|
||||
|
||||
## CUSTOM EXTERNAL COMMANDS
|
||||
|
||||
|
||||
@ -572,3 +572,7 @@ def tap_and_name_comparison
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def command_help_lines(path)
|
||||
path.read.lines.grep(/^#:/).map { |line| line.slice(2..-1) }
|
||||
end
|
||||
|
||||
138
docs/Manpage.md
138
docs/Manpage.md
@ -909,17 +909,137 @@ With `--verbose` or `-v`, many commands print extra debugging information. Note
|
||||
|
||||
## OFFICIAL EXTERNAL COMMANDS
|
||||
|
||||
* `bundle`:
|
||||
Bundler for non-Ruby dependencies from Homebrew:
|
||||
<https://github.com/Homebrew/homebrew-bundle>
|
||||
* `bundle` `command`:
|
||||
|
||||
* `cask`:
|
||||
Install macOS applications distributed as binaries:
|
||||
<https://github.com/caskroom/homebrew-cask>
|
||||
Bundler for non-Ruby dependencies from Homebrew.
|
||||
|
||||
* `services`:
|
||||
Integrates Homebrew formulae with macOS's `launchctl`(1) manager:
|
||||
<https://github.com/Homebrew/homebrew-services>
|
||||
|
||||
|
||||
`bundle` [`install`] [`-v`|`--verbose`] [`--no-upgrade`] [`--file=``path`|`--global`]:
|
||||
|
||||
Install or upgrade all dependencies in a Brewfile.
|
||||
|
||||
|
||||
|
||||
`brew bundle dump` [`--force`] [`--describe`] [`--file=``path`|`--global`]
|
||||
|
||||
Write all installed casks/formulae/taps into a Brewfile.
|
||||
|
||||
|
||||
|
||||
`brew bundle cleanup` [`--force`] [`--zap`] [`--file=``path`|`--global`]
|
||||
|
||||
Uninstall all dependencies not listed in a Brewfile.
|
||||
|
||||
|
||||
|
||||
`brew bundle check` [`--no-upgrade`] [`--file`=`path`|`--global`]
|
||||
|
||||
Check if all dependencies are installed in a Brewfile.
|
||||
|
||||
|
||||
|
||||
`brew bundle exec` `command`
|
||||
|
||||
Run an external command in an isolated build environment.
|
||||
|
||||
|
||||
|
||||
`brew bundle list` [`--all`|`--brews`|`--casks`|`--taps`|`--mas`] [`--file=``path`|`--global`]
|
||||
|
||||
List all dependencies present in a Brewfile, optionally limiting by types.
|
||||
|
||||
By default, only brew dependencies are output.
|
||||
|
||||
|
||||
|
||||
If `-v` or `--verbose` are passed, print verbose output.
|
||||
|
||||
|
||||
|
||||
If `--no-upgrade` is passed, don't run `brew upgrade` outdated dependencies.
|
||||
|
||||
Note they may still be upgraded by `brew install` if needed.
|
||||
|
||||
|
||||
|
||||
If `--force` is passed, uninstall dependencies or overwrite an existing Brewfile.
|
||||
|
||||
|
||||
|
||||
If `--file=`path is passed, the Brewfile path is set accordingly
|
||||
|
||||
Use `--file=-` to output to console.
|
||||
|
||||
|
||||
|
||||
If `--global` is passed, set Brewfile path to `$HOME/.Brewfile`.
|
||||
|
||||
|
||||
|
||||
If `--describe` is passed, output a description comment above each line.
|
||||
|
||||
This comment will not be output if the dependency does not have a description.
|
||||
|
||||
|
||||
|
||||
If `-h` or `--help` are passed, print this help message and exit.
|
||||
|
||||
Homebrew/homebrew-bundle <https://github.com/Homebrew/homebrew-bundle>
|
||||
|
||||
* `cask` [`--version` | `audit` | `cat` | `cleanup` | `create` | `doctor` | `edit` | `fetch` | `home` | `info`]:
|
||||
Install macOS applications distributed as binaries.
|
||||
|
||||
|
||||
Caskroom/homebrew-cask <https://github.com/caskroom/homebrew-cask>
|
||||
|
||||
* `services` `command`:
|
||||
|
||||
Integrates Homebrew formulae with macOS' `launchctl` manager.
|
||||
|
||||
|
||||
|
||||
[`sudo`] `brew services list`
|
||||
|
||||
List all running services for the current user (or `root`)
|
||||
|
||||
|
||||
|
||||
[`sudo`] `brew services run` `formula|--all`
|
||||
|
||||
Run the service `formula` without starting at login (or boot).
|
||||
|
||||
|
||||
|
||||
[`sudo`] `brew services` `start` `formula|--all`
|
||||
|
||||
Start the service `formula` immediately and register it to launch at login (or `boot`).
|
||||
|
||||
|
||||
|
||||
[`sudo`] `brew services` `stop` `formula|--all`
|
||||
|
||||
Stop the service `formula` immediately and unregister it from launching at login (or `boot`).
|
||||
|
||||
|
||||
|
||||
[`sudo`] `brew services` `restart` `formula|--all`
|
||||
|
||||
Stop (if necessary) and start the service immediately and register it to launch at login (or `boot`).
|
||||
|
||||
|
||||
|
||||
[`sudo`] `brew services` `cleanup`
|
||||
|
||||
Remove all unused services.
|
||||
|
||||
|
||||
|
||||
If `sudo` is passed, operate on `/Library/LaunchDaemons` (started at boot).
|
||||
|
||||
Otherwise, operate on `~/Library/LaunchAgents (started at login)`.
|
||||
|
||||
Homebrew/homebrew-services <https://github.com/Homebrew/homebrew-services>
|
||||
|
||||
## CUSTOM EXTERNAL COMMANDS
|
||||
|
||||
|
||||
136
manpages/brew.1
136
manpages/brew.1
@ -930,16 +930,140 @@ If \fB\-\-keep\-tmp\fR is passed, retain the temporary directory containing the
|
||||
.SH "OFFICIAL EXTERNAL COMMANDS"
|
||||
.
|
||||
.TP
|
||||
\fBbundle\fR
|
||||
Bundler for non\-Ruby dependencies from Homebrew: \fIhttps://github\.com/Homebrew/homebrew\-bundle\fR
|
||||
\fBbundle\fR \fIcommand\fR:
|
||||
.
|
||||
.IP
|
||||
Bundler for non\-Ruby dependencies from Homebrew\.
|
||||
.
|
||||
.IP
|
||||
\fBbundle\fR [\fBinstall\fR] [\fB\-v\fR|\fB\-\-verbose\fR] [\fB\-\-no\-upgrade\fR] [\fB\-\-file=\fR\fIpath\fR|\fB\-\-global\fR]:
|
||||
.
|
||||
.IP
|
||||
Install or upgrade all dependencies in a Brewfile\.
|
||||
.
|
||||
.IP
|
||||
\fBbrew bundle dump\fR [\fB\-\-force\fR] [\fB\-\-describe\fR] [\fB\-\-file=\fR\fIpath\fR|\fB\-\-global\fR]
|
||||
.
|
||||
.IP
|
||||
Write all installed casks/formulae/taps into a Brewfile\.
|
||||
.
|
||||
.IP
|
||||
\fBbrew bundle cleanup\fR [\fB\-\-force\fR] [\fB\-\-zap\fR] [\fB\-\-file=\fR\fIpath\fR|\fB\-\-global\fR]
|
||||
.
|
||||
.IP
|
||||
Uninstall all dependencies not listed in a Brewfile\.
|
||||
.
|
||||
.IP
|
||||
\fBbrew bundle check\fR [\fB\-\-no\-upgrade\fR] [\fB\-\-file\fR=\fIpath\fR|\fB\-\-global\fR]
|
||||
.
|
||||
.IP
|
||||
Check if all dependencies are installed in a Brewfile\.
|
||||
.
|
||||
.IP
|
||||
\fBbrew bundle exec\fR \fIcommand\fR
|
||||
.
|
||||
.IP
|
||||
Run an external command in an isolated build environment\.
|
||||
.
|
||||
.IP
|
||||
\fBbrew bundle list\fR [\fB\-\-all\fR|\fB\-\-brews\fR|\fB\-\-casks\fR|\fB\-\-taps\fR|\fB\-\-mas\fR] [\fB\-\-file=\fR\fIpath\fR|\fB\-\-global\fR]
|
||||
.
|
||||
.IP
|
||||
List all dependencies present in a Brewfile, optionally limiting by types\.
|
||||
.
|
||||
.IP
|
||||
By default, only brew dependencies are output\.
|
||||
.
|
||||
.IP
|
||||
If \fB\-v\fR or \fB\-\-verbose\fR are passed, print verbose output\.
|
||||
.
|
||||
.IP
|
||||
If \fB\-\-no\-upgrade\fR is passed, don\'t run \fBbrew upgrade\fR outdated dependencies\.
|
||||
.
|
||||
.IP
|
||||
Note they may still be upgraded by \fBbrew install\fR if needed\.
|
||||
.
|
||||
.IP
|
||||
If \fB\-\-force\fR is passed, uninstall dependencies or overwrite an existing Brewfile\.
|
||||
.
|
||||
.IP
|
||||
If \fB\-\-file=<path>\fR is passed, the Brewfile path is set accordingly
|
||||
.
|
||||
.IP
|
||||
Use \fB\-\-file=\-\fR to output to console\.
|
||||
.
|
||||
.IP
|
||||
If \fB\-\-global\fR is passed, set Brewfile path to \fB$HOME/\.Brewfile\fR\.
|
||||
.
|
||||
.IP
|
||||
If \fB\-\-describe\fR is passed, output a description comment above each line\.
|
||||
.
|
||||
.IP
|
||||
This comment will not be output if the dependency does not have a description\.
|
||||
.
|
||||
.IP
|
||||
If \fB\-h\fR or \fB\-\-help\fR are passed, print this help message and exit\.
|
||||
.
|
||||
.P
|
||||
Homebrew/homebrew\-bundle \fIhttps://github\.com/Homebrew/homebrew\-bundle\fR
|
||||
.
|
||||
.TP
|
||||
\fBcask\fR
|
||||
Install macOS applications distributed as binaries: \fIhttps://github\.com/caskroom/homebrew\-cask\fR
|
||||
\fBcask\fR [\fB\-\-version\fR | \fBaudit\fR | \fBcat\fR | \fBcleanup\fR | \fBcreate\fR | \fBdoctor\fR | \fBedit\fR | \fBfetch\fR | \fBhome\fR | \fBinfo\fR]
|
||||
Install macOS applications distributed as binaries\.
|
||||
.
|
||||
.P
|
||||
Caskroom/homebrew\-cask \fIhttps://github\.com/caskroom/homebrew\-cask\fR
|
||||
.
|
||||
.TP
|
||||
\fBservices\fR
|
||||
Integrates Homebrew formulae with macOS\'s \fBlaunchctl\fR(1) manager: \fIhttps://github\.com/Homebrew/homebrew\-services\fR
|
||||
\fBservices\fR \fIcommand\fR:
|
||||
.
|
||||
.IP
|
||||
Integrates Homebrew formulae with macOS\' \fBlaunchctl\fR manager\.
|
||||
.
|
||||
.IP
|
||||
[\fIsudo\fR] \fBbrew services list\fR
|
||||
.
|
||||
.IP
|
||||
List all running services for the current user (or \fIroot\fR)
|
||||
.
|
||||
.IP
|
||||
[\fIsudo\fR] \fBbrew services run\fR \fIformula|\-\-all\fR
|
||||
.
|
||||
.IP
|
||||
Run the service \fIformula\fR without starting at login (or boot)\.
|
||||
.
|
||||
.IP
|
||||
[\fIsudo\fR] \fBbrew services\fR \fBstart\fR \fIformula|\-\-all\fR
|
||||
.
|
||||
.IP
|
||||
Start the service \fIformula\fR immediately and register it to launch at login (or \fIboot\fR)\.
|
||||
.
|
||||
.IP
|
||||
[\fIsudo\fR] \fBbrew services\fR \fBstop\fR \fIformula|\-\-all\fR
|
||||
.
|
||||
.IP
|
||||
Stop the service \fIformula\fR immediately and unregister it from launching at login (or \fIboot\fR)\.
|
||||
.
|
||||
.IP
|
||||
[\fIsudo\fR] \fBbrew services\fR \fBrestart\fR \fIformula|\-\-all\fR
|
||||
.
|
||||
.IP
|
||||
Stop (if necessary) and start the service immediately and register it to launch at login (or \fIboot\fR)\.
|
||||
.
|
||||
.IP
|
||||
[\fIsudo\fR] \fBbrew services\fR \fBcleanup\fR
|
||||
.
|
||||
.IP
|
||||
Remove all unused services\.
|
||||
.
|
||||
.IP
|
||||
If \fBsudo\fR is passed, operate on \fB/Library/LaunchDaemons\fR (started at boot)\.
|
||||
.
|
||||
.IP
|
||||
Otherwise, operate on \fB~/Library/LaunchAgents (started at login)\fR\.
|
||||
.
|
||||
.P
|
||||
Homebrew/homebrew\-services \fIhttps://github\.com/Homebrew/homebrew\-services\fR
|
||||
.
|
||||
.SH "CUSTOM EXTERNAL COMMANDS"
|
||||
Homebrew, like \fBgit\fR(1), supports external commands\. These are executable scripts that reside somewhere in the \fBPATH\fR, named \fBbrew\-\fR\fIcmdname\fR or \fBbrew\-\fR\fIcmdname\fR\fB\.rb\fR, which can be invoked like \fBbrew\fR \fIcmdname\fR\. This allows you to create your own commands without modifying Homebrew\'s internals\.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user