snipt/salt/fish/virtualenv.fish

47 lines
1.1 KiB
Fish

# mostly from http://coderseye.com/2010/using-virtualenv-with-fish-shell.html
function workon -d "Activate virtual environment in $WORKON_HOME"
set tgt {$WORKON_HOME}/$argv[1]
if [ ! -d $tgt ]
mkdir -p "$WORKON_HOME"
virtualenv $tgt
end
if [ -d $tgt ]
cd $tgt
deactivate
set -gx VIRTUAL_ENV "$tgt"
set -gx _OLD_VIRTUAL_PATH $PATH
set -gx PATH "$VIRTUAL_ENV/bin" $PATH
# unset PYTHONHOME if set
if set -q PYTHONHOME
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
set -e PYTHONHOME
end
cd -
echo "activated $tgt"
else
echo "$tgt not found"
end
end
complete -c workon -a "(cd $WORKON_HOME; ls -d *)"
function deactivate -d "Exit virtualenv and return to normal shell environment"
# reset old environment variables
if test -n "$_OLD_VIRTUAL_PATH"
set -gx PATH $_OLD_VIRTUAL_PATH
set -e _OLD_VIRTUAL_PATH
end
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
set -e _OLD_VIRTUAL_PYTHONHOME
end
set -e VIRTUAL_ENV
end