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
 |