summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/directories.zsh3
-rw-r--r--plugins/autoenv/autoenv.plugin.zsh18
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/directories.zsh b/lib/directories.zsh
index b3a478d47..1896945f4 100644
--- a/lib/directories.zsh
+++ b/lib/directories.zsh
@@ -30,6 +30,9 @@ cd () {
cd ../../../..
elif [[ "x$*" == "x......" ]]; then
cd ../../../../..
+ elif [ -d ~/.autoenv ]; then
+ source ~/.autoenv/activate.sh
+ autoenv_cd "$@"
else
builtin cd "$@"
fi
diff --git a/plugins/autoenv/autoenv.plugin.zsh b/plugins/autoenv/autoenv.plugin.zsh
new file mode 100644
index 000000000..ca5666979
--- /dev/null
+++ b/plugins/autoenv/autoenv.plugin.zsh
@@ -0,0 +1,18 @@
+# The use_env call below is a reusable command to activate/create a new Python
+# virtualenv, requiring only a single declarative line of code in your .env files.
+# It only performs an action if the requested virtualenv is not the current one.
+use_env() {
+ typeset venv
+ venv="$1"
+ if [[ "${VIRTUAL_ENV:t}" != "$venv" ]]; then
+ if workon | grep -q "$venv"; then
+ workon "$venv"
+ else
+ echo -n "Create virtualenv $venv now? (Yn) "
+ read answer
+ if [[ "$answer" == "Y" ]]; then
+ mkvirtualenv "$venv"
+ fi
+ fi
+ fi
+}