Plugin for pipenv

Add completion for pipenv
Auto activate and deactivate for pipenv shell
This commit is contained in:
Alan Bradley 2018-03-18 18:58:28 +00:00
parent 0cec462621
commit d75c3354d5

View File

@ -0,0 +1,36 @@
#compdef pipenv
_pipenv() {
eval $(env COMMANDLINE="${words[1,$CURRENT]}" _PIPENV_COMPLETE=complete-zsh pipenv)
}
_togglePipenvShell() {
# deactivate shell if Pipfile doesn't exit and not in a sub dir
if [[ ! -a "$PWD/Pipfile" ]]; then
if [[ "$PIPENV_ACTIVE" == 1 ]]; then
if [[ "$PWD" != "$pipfile_dir"* ]]; then
exit
fi
fi
fi
# activate the shell if Pipfile exists
if [[ "$PIPENV_ACTIVE" != 1 ]]; then
if [[ -a "$PWD/Pipfile" ]]; then
export pipfile_dir="$PWD"
pipenv shell
fi
fi
}
if [[ "$(basename ${(%):-%x})" != "_pipenv" ]]; then
autoload -U compinit && compinit
compdef _pipenv pipenv
fi
export PROMPT_COMMAND=_togglePipenvShell
if [ -n "$ZSH_VERSION" ]; then
function chpwd() {
_togglePipenvShell
}
fi