zsh-completions/src/_brew

175 lines
6.6 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#compdef brew
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for brew (https://github.com/mxcl/homebrew).
#
# Source: https://github.com/mxcl/homebrew/blob/master/Library/Contributions/brew_zsh_completion.zsh
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * kulakowski (https://github.com/kulakowski)
# * Gabe Berke-Williams (https://github.com/gabebw)
# * James Conroy-Finn (https://github.com/jcf)
# * Daniel Schauenberg (https://github.com/mrtazz)
# * Adam Vandenberg (https://github.com/adamv)
# * Erik Kastner (https://github.com/kastner)
# * Katsunori Kanda (https://github.com/potix2)
#
# ------------------------------------------------------------------------------
_brew_all_formulae() {
formulae=(${(f)"$(_call_program formulae brew search 2>/dev/null)"})
}
_brew_installed_formulae() {
installed_formulae=(${(f)"$(_call_program formulae brew list 2>/dev/null)"})
}
_brew_installed_taps() {
installed_taps=(${(f)"$(_call_program formulae brew tap 2>/dev/null)"})
}
_brew_outdated_formulae() {
outdated_formulae=(${(f)"$(_call_program formulae brew outdated 2>/dev/null)"})
}
local -a _1st_arguments
_1st_arguments=(
'audit:check formulae for Homebrew coding style'
'cat:display formula file for a formula'
'cleanup:uninstall unused and old versions of packages'
'create:create a new formula'
'deps:list dependencies and dependants of a formula'
'doctor:audits your installation for common issues'
'diy:automatically determine the installation prefix for non-Homebrew software'
'edit:edit a formula'
'fetch:download the source packages for the given formulae'
'home:visit the homepage of a formula or the brew project'
'info:information about a formula'
'install:install a formula'
'link:link a formula'
'list:list files in a formula or not-installed formulae'
'log:git commit log for a formula'
'missing:check all installed formulae for missing dependencies.'
'options:display install options specific to formula'
'outdated:list formulae for which a newer version is available'
'prune:remove dead links'
'reinstall:install a formula anew; re-using its current options'
'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:manage background services via launchctl'
'tap:tap a new formula repository from GitHub, or list existing taps'
'test:a few formulae provide a test method'
'unlink:unlink a formula'
'untap:remove a tapped repository'
'unpin:unpin specified formulae'
'update:freshen up links'
'upgrade:upgrade outdated formulae'
'uses:show formulae which depend on a formula'
'versions:list previous versions of formulae'
)
local expl
local -a formulae installed_formulae installed_taps outdated_formulae
_arguments \
'(-v)-v[verbose]' \
'(--cellar)--cellar[brew cellar]' \
'(--config)--config[brew configuration]' \
'(--env)--env[brew environment]' \
'(--repository)--repository[brew repository]' \
'(--version)--version[version information]' \
'(--prefix)--prefix[where brew lives on this system]' \
'(--cache)--cache[brew cache]' \
'*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
_describe -t commands "brew subcommand" _1st_arguments
return
fi
case "$words[1]" in
search|-S)
_arguments \
'(--debian)--debian[search the Debian repository]' \
'(--fedora)--fedora[search the Fedora repository]' \
'(--fink)--fink[search the Fink repository]' \
'(--macports)--macports[search the Macports repository]' \
'(--opensuse)--opensuse[search the OpenSuse repository]' \
'(--ubuntu)--ubuntu[search the Ubuntu repository]' \
'1: :->forms' && return 0
if [[ "$state" == forms ]]; then
_brew_all_formulae
_wanted formulae expl 'all formulae' compadd -a formulae
fi ;;
link|ln)
_arguments \
'(-n --dry-run)'{-n,--dry-run}'[All files would be linked or be deleted will be listed, but no real linking or deletion will be done]' \
'(--force)--force[Allow keg-only formulae to be linked]' \
'(--overwrite)--overwrite[Also delete files which already exist in the prefix while linking]' \
'1: :->forms' && return 0
if [[ "$state" == forms ]]; then
_brew_installed_formulae
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae
fi ;;
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
if [[ "$state" == forms ]]; then
_brew_installed_formulae
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae
fi ;;
install|reinstall)
_arguments \
'(--devel)--devel[install the development version]' \
'(--env=std)--env=std[use the standard build environment instead of superenv]' \
'(--env=super)--env=super[use superenv even if the formula specifies the standard build environment]' \
'(--fresh)--fresh[the installation process will not re-use any options from previous installs]' \
'(--ignore-dependencies)--ignore-dependencies[skip any dependencies installation]' \
'(--use-clang)--use-clang[attempt to compile using clang]' \
'(--use-gcc)--use-gcc[attempt to compile using GCC]' \
'(--use-llvm)--use-llvm[attempt to compile using the LLVM front-end to GCC]' \
'1: :->forms' && return 0
if [[ "$state" == forms ]]; then
_brew_all_formulae
_wanted formulae expl 'all formulae' compadd -a formulae
fi ;;
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|pin|unpin|test)
_brew_installed_formulae
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;;
tap)
_arguments \
'(--repair)--repair[repair all tap formula, i.e. symlinks and dead formula]' && return 0 ;;
upgrade)
_brew_outdated_formulae
_wanted outdated_formulae expl 'outdated formulae' compadd -a outdated_formulae ;;
untap)
_brew_installed_taps
_wanted installed_taps expl 'installed taps' compadd -a installed_taps ;;
esac
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et