54 lines
1.3 KiB
Plaintext
54 lines
1.3 KiB
Plaintext
#compdef pip
|
|
# ------------------------------------------------------------------------------
|
|
# Description
|
|
# -----------
|
|
#
|
|
# Completion script for pip (http://pypi.python.org/pypi/pip).
|
|
#
|
|
# ------------------------------------------------------------------------------
|
|
# Authors
|
|
# -------
|
|
#
|
|
# * Dmitry Gladkov (https://github.com/dgladkov)
|
|
#
|
|
# ------------------------------------------------------------------------------
|
|
# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
|
|
# vim: ft=zsh sw=2 ts=2 et
|
|
# ------------------------------------------------------------------------------
|
|
|
|
|
|
local subcmds
|
|
|
|
_arguments -C '*::command:->command' && return 0
|
|
|
|
case $state in
|
|
command)
|
|
if [[ $CURRENT != 1 && $words[$CURRENT] != -* && $words[$CURRENT-1] != "-r" ]]; then
|
|
state=packages
|
|
elif [[ $words[$CURRENT-1] == "-r" ]]; then
|
|
state=files
|
|
else
|
|
state=subcommands
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
case $state in
|
|
subcommands)
|
|
reply=($( COMP_WORDS="$service $words[*]" \
|
|
COMP_CWORD=0 \
|
|
PIP_AUTO_COMPLETE=1 $service ))
|
|
_describe -t commands 'pip commands' reply
|
|
;;
|
|
packages)
|
|
if [[ -n $words[CURRENT] ]]; then
|
|
packages=($( pip search "$words[CURRENT]" | \
|
|
grep -i "^$words[CURRENT]" | \
|
|
cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]' ))
|
|
_describe -t commands 'packages' packages
|
|
fi
|
|
;;
|
|
files)
|
|
_arguments -C '*:input file:_files' && return 0
|
|
esac
|