You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
979 B
43 lines
979 B
# --- activate a virtualenv without the need of going through a series of |
|
# paths |
|
function venv { source $WORKON_HOME/$1/bin/activate; } |
|
|
|
# --- create a virtualenv |
|
function mkenv { virtualenv $WORKON_HOME/$1; venv $1; echo "$1" > ./.venv; } |
|
|
|
# --- automagically load virtualenvs, based on the ".venv" file in the directory |
|
|
|
# -- search for the ".venv" from the current directory and, if it can't be found, |
|
# go through the parent directories all the way to the system root |
|
function _upwards_search { |
|
venv="" |
|
curdir=`pwd` |
|
|
|
while [[ `pwd` != '/' ]]; do |
|
if [ -f ./.venv ]; then |
|
venv=`cat ./.venv` |
|
break |
|
fi |
|
cd .. |
|
done |
|
|
|
cd $curdir |
|
echo $venv; |
|
} |
|
|
|
# -- replacement for "cd", which will check the virtualenv file |
|
function _venv_cd { |
|
if [ -d "$PWD/$*" ]; then |
|
if [ "$VIRTUAL_ENV." != "." ]; then |
|
deactivate |
|
fi |
|
fi |
|
\cd $* |
|
venv=$(_upwards_search) |
|
if [ -n "$venv" ]; then |
|
venv $venv |
|
fi |
|
} |
|
|
|
# -- replace "cd" with our magical "cd" |
|
alias cd=_venv_cd
|
|
|