aboutsummaryrefslogtreecommitdiff
path: root/.oh-my-zsh/plugins/autoenv
diff options
context:
space:
mode:
authorMarvin Borner2019-03-05 01:09:01 +0100
committerMarvin Borner2019-03-05 01:09:01 +0100
commit55457187d18221e76bd12f0fb2cfab65c49b92fb (patch)
tree8db042d2d80710d54100c2709ad4332153ac848a /.oh-my-zsh/plugins/autoenv
Initial commit
Diffstat (limited to '.oh-my-zsh/plugins/autoenv')
-rw-r--r--.oh-my-zsh/plugins/autoenv/autoenv.plugin.zsh43
1 files changed, 43 insertions, 0 deletions
diff --git a/.oh-my-zsh/plugins/autoenv/autoenv.plugin.zsh b/.oh-my-zsh/plugins/autoenv/autoenv.plugin.zsh
new file mode 100644
index 0000000..3c1b0fa
--- /dev/null
+++ b/.oh-my-zsh/plugins/autoenv/autoenv.plugin.zsh
@@ -0,0 +1,43 @@
+# Activates autoenv or reports its failure
+() {
+if ! type autoenv_init >/dev/null; then
+ for d (~/.autoenv ~/.local/bin /usr/local/opt/autoenv /usr/local/bin); do
+ if [[ -e $d/activate.sh ]]; then
+ autoenv_dir=$d
+ break
+ fi
+ done
+ if [[ -z $autoenv_dir ]]; then
+ cat <<END >&2
+-------- AUTOENV ---------
+Could not locate autoenv installation.
+Please check if autoenv is correctly installed.
+In the meantime the autoenv plugin is DISABLED.
+--------------------------
+END
+ return 1
+ fi
+ source $autoenv_dir/activate.sh
+fi
+}
+[[ $? != 0 ]] && return $?
+
+# 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
+}