From 05a42d2d1e72ab999c222a7712b972dff1b1bbaf Mon Sep 17 00:00:00 2001 From: Dmitry Gladkov Date: Thu, 21 Jul 2011 20:41:48 +0300 Subject: [PATCH] #8 add PyPI pip completion --- _pip | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 _pip diff --git a/_pip b/_pip new file mode 100644 index 0000000..20fe3f2 --- /dev/null +++ b/_pip @@ -0,0 +1,36 @@ +#compdef pip + +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