summaryrefslogtreecommitdiff
path: root/plugins/pipenv/pipenv.plugin.zsh
diff options
context:
space:
mode:
authorAlan <alan@gangleri.net>2019-05-08 08:48:28 +0100
committerMarc Cornellà <marc.cornella@live.com>2019-05-08 09:48:28 +0200
commit4cadbcd23503e3aa1f29008b6748c82bd308dce6 (patch)
tree78bea7c7f33b50a0695039e48be109fd9b3ea17d /plugins/pipenv/pipenv.plugin.zsh
parent76c7bd57c332b3d9231dc2c6167f3c5d3e56e110 (diff)
downloadzsh-4cadbcd23503e3aa1f29008b6748c82bd308dce6.tar.gz
zsh-4cadbcd23503e3aa1f29008b6748c82bd308dce6.tar.bz2
zsh-4cadbcd23503e3aa1f29008b6748c82bd308dce6.zip
Add plugin for pipenv (#6698)
- Add completion for pipenv - Auto activate and deactivate for pipenv shell - Add aliases for the most common pipenv commands
Diffstat (limited to 'plugins/pipenv/pipenv.plugin.zsh')
-rw-r--r--plugins/pipenv/pipenv.plugin.zsh42
1 files changed, 42 insertions, 0 deletions
diff --git a/plugins/pipenv/pipenv.plugin.zsh b/plugins/pipenv/pipenv.plugin.zsh
new file mode 100644
index 000000000..0a5dc56a4
--- /dev/null
+++ b/plugins/pipenv/pipenv.plugin.zsh
@@ -0,0 +1,42 @@
+# Pipenv completion
+_pipenv() {
+ eval $(env COMMANDLINE="${words[1,$CURRENT]}" _PIPENV_COMPLETE=complete-zsh pipenv)
+}
+compdef _pipenv pipenv
+
+# Automatic pipenv shell activation/deactivation
+_togglePipenvShell() {
+ # deactivate shell if Pipfile doesn't exist and not in a subdir
+ 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
+}
+chpwd_functions+=(_togglePipenvShell)
+
+# Aliases
+alias pch="pipenv check"
+alias pcl="pipenv clean"
+alias pgr="pipenv graph"
+alias pi="pipenv install"
+alias pidev="pipenv install --dev"
+alias pl="pipenv lock"
+alias po="pipenv open"
+alias prun="pipenv run"
+alias psh="pipenv shell"
+alias psy="pipenv sync"
+alias pu="pipenv uninstall"
+alias pwh="pipenv --where"
+alias pvenv="pipenv --venv"
+alias ppy="pipenv --py"