]> arthur.barton.de Git - ax-zsh.git/blobdiff - plugins/virtualenv/virtualenv.zshrc
virtualenv: Add support for "pipenv"
[ax-zsh.git] / plugins / virtualenv / virtualenv.zshrc
index 85453749cd0d5c6a0996c7091763b28bc8f3d452..43614aff0d28daddf263c2228eba65d334b08c19 100644 (file)
@@ -1,7 +1,22 @@
 # AX-ZSH: Alex' Modular ZSH Configuration
 # virtualenv: Activate an "virtual environment"
 
+# This plugin is optional.
+[[ -z "$AXZSH_PLUGIN_CHECK" ]] || return 92
+
 function activate() {
+       local d r
+
+       # Make sure no "virtual environment" is already active!
+       if [[ -n "$VIRTUAL_ENV" ]]; then
+               echo "Oops, looks like a virtual environment is already active!" >&2
+               return 1
+       fi
+
+       if [[ -r Pipfile ]]; then
+               pipenv run "$SHELL"; r=$?
+               return $r
+       fi
        for d (
                ./bin
                ./env/bin
@@ -17,6 +32,11 @@ function activate() {
                echo "Failed to read script \"$script\"!" >&2
                return 1
        done
+
        echo "No virtual environment found!" >&2
        return 1
 }
+
+if [[ -n "$PIPENV_ACTIVE" ]]; then
+       alias deactivate=exit
+fi