1# This file must be used with "source <venv>/bin/activate.fish" *from fish* 2# (https://fishshell.com/); you cannot run it directly. 3 4function deactivate -d "Exit virtual environment and return to normal shell environment" 5 # reset old environment variables 6 if test -n "$_OLD_VIRTUAL_PATH" 7 set -gx PATH $_OLD_VIRTUAL_PATH 8 set -e _OLD_VIRTUAL_PATH 9 end 10 if test -n "$_OLD_VIRTUAL_PYTHONHOME" 11 set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME 12 set -e _OLD_VIRTUAL_PYTHONHOME 13 end 14 15 if test -n "$_OLD_FISH_PROMPT_OVERRIDE" 16 set -e _OLD_FISH_PROMPT_OVERRIDE 17 # prevents error when using nested fish instances (Issue #93858) 18 if functions -q _old_fish_prompt 19 functions -e fish_prompt 20 functions -c _old_fish_prompt fish_prompt 21 functions -e _old_fish_prompt 22 end 23 end 24 25 set -e VIRTUAL_ENV 26 set -e VIRTUAL_ENV_PROMPT 27 if test "$argv[1]" != "nondestructive" 28 # Self-destruct! 29 functions -e deactivate 30 end 31end 32 33# Unset irrelevant variables. 34deactivate nondestructive 35 36set -gx VIRTUAL_ENV "__VENV_DIR__" 37 38set -gx _OLD_VIRTUAL_PATH $PATH 39set -gx PATH "$VIRTUAL_ENV/__VENV_BIN_NAME__" $PATH 40 41# Unset PYTHONHOME if set. 42if set -q PYTHONHOME 43 set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME 44 set -e PYTHONHOME 45end 46 47if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" 48 # fish uses a function instead of an env var to generate the prompt. 49 50 # Save the current fish_prompt function as the function _old_fish_prompt. 51 functions -c fish_prompt _old_fish_prompt 52 53 # With the original prompt function renamed, we can override with our own. 54 function fish_prompt 55 # Save the return status of the last command. 56 set -l old_status $status 57 58 # Output the venv prompt; color taken from the blue of the Python logo. 59 printf "%s%s%s" (set_color 4B8BBE) "__VENV_PROMPT__" (set_color normal) 60 61 # Restore the return status of the previous command. 62 echo "exit $old_status" | . 63 # Output the original/"old" prompt. 64 _old_fish_prompt 65 end 66 67 set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" 68 set -gx VIRTUAL_ENV_PROMPT "__VENV_PROMPT__" 69end 70