1
0
Fork 0
dotfiles/.local/share/zsh/plugins/autopyenv/autopyenv.plugin.zsh

33 lines
923 B
Bash
Raw Normal View History

2022-08-03 00:31:29 +02:00
PYENV_DIR="${PYENVS_HOME:-${XDG_DATA_HOME:-$HOME/.local/share}/virtualenv}"
2022-08-02 14:46:25 +02:00
function chpwd_activate(){
for pydir in $(ls $PYENV_DIR); do
2022-08-03 11:22:38 +02:00
if [[ $(pwd|sed -e s@/@_@g) =~ "^$pydir$" ]]; then
2022-08-02 14:46:25 +02:00
if [ "x$VIRTUAL_ENV" != "x$PYENV_DIR/$pydir" ]; then
2022-08-02 16:11:09 +02:00
# echo "Activating virtual env $pydir"
2022-08-02 14:46:25 +02:00
source "$PYENV_DIR/$pydir/bin/activate"
return
fi
fi
done
if [ "x$VIRTUAL_ENV" != "x" ]; then
2022-08-02 16:11:09 +02:00
# echo "Deactivating virtual env $VIRTUAL_ENV"
2022-08-02 14:46:25 +02:00
deactivate
fi
}
function venv-here(){
envdir=$(pwd|sed -e s@/@_@g)
if [ ! -e "$PYENV_DIR/${envdir}" ]; then
echo "Creating python venv for ${envdir}.."
mkdir "$PYENV_DIR" -p
python3 -m venv "$PYENV_DIR/${envdir}"
echo "Activating virtual env ${envdir}"
source "$PYENV_DIR/${envdir}/bin/activate"
else
echo "A venv for this path already exists"
fi
}
autoload -U add-zsh-hook
add-zsh-hook chpwd chpwd_activate