diff options
Diffstat (limited to 'plugins/pip/_pip')
| -rw-r--r-- | plugins/pip/_pip | 64 | 
1 files changed, 46 insertions, 18 deletions
| diff --git a/plugins/pip/_pip b/plugins/pip/_pip index b58010173..df53ba5ce 100644 --- a/plugins/pip/_pip +++ b/plugins/pip/_pip @@ -3,30 +3,43 @@  # pip zsh completion, based on homebrew completion +_pip_all() { +  # we cache the list of packages (originally from the macports plugin) +  if (( ! $+piplist )); then +    echo -n " (caching package index...)" +	piplist=($(pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]')) +  fi +} +  _pip_installed() { -  installed_pkgs=(`pip freeze`) +  installed_pkgs=(`pip freeze | cut -d '=' -f 1`)  }  local -a _1st_arguments  _1st_arguments=( -  'bundle:Create pybundles (archives containing multiple packages)' -  'freeze:Output all currently installed packages (exact versions) to stdout' -  'help:Show available commands' -  'install:Install packages' -  'search:Search PyPI' -  'uninstall:Uninstall packages' -  'unzip:Unzip individual packages' -  'zip:Zip individual packages' +  'bundle:create pybundles (archives containing multiple packages)' +  'freeze:output all currently installed packages (exact versions) to stdout' +  'help:show available commands' +  'install:install packages' +  'search:search PyPI' +  'uninstall:uninstall packages' +  'unzip:unzip individual packages' +  'zip:zip individual packages'  )  local expl -local -a pkgs installed_pkgs +local -a all_pkgs installed_pkgs  _arguments \ -  '(--version)--version[Show version number of program and exit]' \ -  '(-v --verbose)'{-v,--verbose}'[Give more output]' \ -  '(-q --quiet)'{-q,--quiet}'[Give less output]' \ -  '(-h --help)'{-h,--help}'[Show help]' \ +  '(--version)--version[show version number of program and exit]' \ +  '(-h --help)'{-h,--help}'[show help]' \ +  '(-E --environment)'{-E,--environment}'[virtualenv environment to run pip in]' \ +  '(-s --enable-site-packages)'{-s,--enable-site-packages}'[include site-packages in virtualenv]' \ +  '(-v --verbose)'{-v,--verbose}'[give more output]' \ +  '(-q --quiet)'{-q,--quiet}'[give less output]' \ +  '(--log)--log[log file location]' \ +  '(--proxy)--proxy[proxy in form user:passwd@proxy.server:port]' \ +  '(--timeout)--timeout[socket timeout (default 15s)]' \    '*:: :->subcmds' && return 0  if (( CURRENT == 1 )); then @@ -35,10 +48,25 @@ if (( CURRENT == 1 )); then  fi  case "$words[1]" in -  list) -      if [[ "$state" == forms ]]; then -        _pip_installed -        _requested installed_pkgs expl 'installed packages' compadd -a installed_pkgs +  search) +    _arguments \ +      '(--index)--index[base URL of Python Package Index]' ;; +  freeze) +    _arguments \ +      '(-l --local)'{-l,--local}'[report only virtualenv packages]' ;; +  install) +  	_arguments \ +      '(-U --upgrade)'{-U,--upgrade}'[upgrade all packages to the newest available version]' \ +      '(-f --find-links)'{-f,--find-links}'[URL for finding packages]' \ +      '(--no-deps --no-dependencies)'{--no-deps,--no-dependencies}'[iIgnore package dependencies]' \ +      '(--no-install)--no-install[only download packages]' \ +      '(--no-download)--no-download[only install downloaded packages]' \ +      '(--install-option)--install-option[extra arguments to be supplied to the setup.py]' \ +      '1: :->packages' &&  return 0 +      +      if [[ "$state" == packages ]]; then +        _pip_all +        _wanted piplist expl 'packages' compadd -a piplist        fi ;;    uninstall)      _pip_installed | 
