Plugin for pipenv
Add completion for pipenv Auto activate and deactivate for pipenv shell
This commit is contained in:
parent
0cec462621
commit
d75c3354d5
36
plugins/pipenv/pipenv.plugin.zsh
Normal file
36
plugins/pipenv/pipenv.plugin.zsh
Normal 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
|
||||||
|
|
Loading…
Reference in New Issue
Block a user