diff options
| author | Ed Lui | 2014-01-22 16:36:33 -0500 |
|---|---|---|
| committer | Mike McQuaid | 2014-01-23 10:51:36 -0800 |
| commit | b89955002edf1a414aae5adba69f09191ec5bad5 (patch) | |
| tree | 0439f3667a570b932c1ae1fd1afed7ad675cdaf1 | |
| parent | 2a2c9402b9b05b3e9685d7f5af37bdf164993027 (diff) | |
| download | brew-b89955002edf1a414aae5adba69f09191ec5bad5.tar.bz2 | |
brew_zsh_completion: add `brew services` support
Closes Homebrew/homebrew#26105.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
| -rw-r--r-- | Library/Contributions/brew_zsh_completion.zsh | 48 |
1 files changed, 36 insertions, 12 deletions
diff --git a/Library/Contributions/brew_zsh_completion.zsh b/Library/Contributions/brew_zsh_completion.zsh index 519414770..89bb02fb8 100644 --- a/Library/Contributions/brew_zsh_completion.zsh +++ b/Library/Contributions/brew_zsh_completion.zsh @@ -22,6 +22,10 @@ _brew_outdated_formulae() { outdated_formulae=(`brew outdated`) } +_brew_running_services() { + running_services=(`brew services list | awk '{print $1}'`) +} + local -a _1st_arguments _1st_arguments=( 'audit:check formulae for Homebrew coding style' @@ -47,6 +51,7 @@ _1st_arguments=( 'remove:remove a formula' 'search:search for a formula (/regex/ or string)' 'server:start a local web app that lets you browse formulae (requires Sinatra)' + 'services:small wrapper around `launchctl` for supported formulae' 'tap:tap a new formula repository from GitHub, or list existing taps' 'unlink:unlink a formula' 'unpin:unpin specified formulae' @@ -56,8 +61,17 @@ _1st_arguments=( 'uses:show formulae which depend on a formula' ) +local -a _service_arguments +_service_arguments=( + 'cleanup:get rid of stale services and unused plists' + 'list:list all services managed by `brew services`' + 'restart:gracefully restart selected service' + 'start:start selected service' + 'stop:stop selected service' +) + local expl -local -a formulae installed_formulae installed_taps outdated_formulae +local -a formulae installed_formulae installed_taps outdated_formulae running_services _arguments \ '(-v)-v[verbose]' \ @@ -76,31 +90,41 @@ if (( CURRENT == 1 )); then fi case "$words[1]" in - search|-S) - _arguments \ - '(--macports)--macports[search the macports repository]' \ - '(--fink)--fink[search the fink repository]' ;; + install|reinstall|audit|home|homepage|log|info|abv|uses|cat|deps|edit|options) + _brew_all_formulae + _wanted formulae expl 'all formulae' compadd -a formulae ;; list|ls) _arguments \ '(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \ '(--pinned)--pinned[list all versions of pinned formulae]' \ '(--versions)--versions[list all installed versions of a formula]' \ - '1: :->forms' && return 0 + '1: :->forms' && return 0 if [[ "$state" == forms ]]; then _brew_installed_formulae _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae fi ;; - install|reinstall|audit|home|homepage|log|info|abv|uses|cat|deps|edit|options) - _brew_all_formulae - _wanted formulae expl 'all formulae' compadd -a formulae ;; remove|rm|uninstall|unlink|cleanup|link|ln|pin|unpin) _brew_installed_formulae _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;; - upgrade) - _brew_outdated_formulae - _wanted outdated_formulae expl 'outdated formulae' compadd -a outdated_formulae ;; + search|-S) + _arguments \ + '(--macports)--macports[search the macports repository]' \ + '(--fink)--fink[search the fink repository]' ;; + services) + if [[ -n "$words[2]" ]]; then + case "$words[2]" in + restart|start|stop) + _brew_running_services + _wanted running_services expl 'running services' compadd -a running_services ;; + esac + else + _describe -t commands "brew services subcommand" _service_arguments + fi ;; untap) _brew_installed_taps _wanted installed_taps expl 'installed taps' compadd -a installed_taps ;; + upgrade) + _brew_outdated_formulae + _wanted outdated_formulae expl 'outdated formulae' compadd -a outdated_formulae ;; esac |
