autoenv.plugin.zsh 1.14 KB
Newer Older
LFDM's avatar
LFDM committed
1
# Activates autoenv or reports its failure
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
() {
if ! type autoenv_init >/dev/null; then
  for d (~/.autoenv /usr/local/opt/autoenv); 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
20
  source $autoenv_dir/activate.sh
LFDM's avatar
LFDM committed
21
fi
22
23
}
[[ $? != 0 ]] && return $?
LFDM's avatar
LFDM committed
24

25
26
27
# 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.
LFDM's avatar
LFDM committed
28

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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
}