blob: 92890b66b10682048f48dc3209719778a511044a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
workon() {
# Sets WORKON_HOME to default if not set already
test -z "$WORKON_HOME" && WORKON_HOME="$HOME/.venv"
# Creates WORKON_HOME directory if not exists
test ! -e "$WORKON_HOME" && mkdir -p $_
# Quit if there is no arguments, while showing available venvs
test "$#" -lt "1" && ls "$WORKON_HOME"; return
envdir="$WORKON_HOME/$1"
# Creates virtual env if doesn't exists
test ! -e "$envdir" && pyvenv $_ && echo "Virtual env created in $_"
source "$envdir/bin/activate"
unset envdir # VIRTUAL_ENV is now set by bin/activate
# Jumps to project directory if exists and PROJECT_HOME is set
test -d "$PROJECT_HOME/$(basename $VIRTUAL_ENV)" && cd $_
# Source postactivate.sh if exists in the virtual env
test -e "$VIRTUAL_ENV/postactivate.sh" && source $_
}
|