17db96d56Sopenharmony_ci# This file must be used with "source <venv>/bin/activate.fish" *from fish* 27db96d56Sopenharmony_ci# (https://fishshell.com/); you cannot run it directly. 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_cifunction deactivate -d "Exit virtual environment and return to normal shell environment" 57db96d56Sopenharmony_ci # reset old environment variables 67db96d56Sopenharmony_ci if test -n "$_OLD_VIRTUAL_PATH" 77db96d56Sopenharmony_ci set -gx PATH $_OLD_VIRTUAL_PATH 87db96d56Sopenharmony_ci set -e _OLD_VIRTUAL_PATH 97db96d56Sopenharmony_ci end 107db96d56Sopenharmony_ci if test -n "$_OLD_VIRTUAL_PYTHONHOME" 117db96d56Sopenharmony_ci set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME 127db96d56Sopenharmony_ci set -e _OLD_VIRTUAL_PYTHONHOME 137db96d56Sopenharmony_ci end 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ci if test -n "$_OLD_FISH_PROMPT_OVERRIDE" 167db96d56Sopenharmony_ci set -e _OLD_FISH_PROMPT_OVERRIDE 177db96d56Sopenharmony_ci # prevents error when using nested fish instances (Issue #93858) 187db96d56Sopenharmony_ci if functions -q _old_fish_prompt 197db96d56Sopenharmony_ci functions -e fish_prompt 207db96d56Sopenharmony_ci functions -c _old_fish_prompt fish_prompt 217db96d56Sopenharmony_ci functions -e _old_fish_prompt 227db96d56Sopenharmony_ci end 237db96d56Sopenharmony_ci end 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_ci set -e VIRTUAL_ENV 267db96d56Sopenharmony_ci set -e VIRTUAL_ENV_PROMPT 277db96d56Sopenharmony_ci if test "$argv[1]" != "nondestructive" 287db96d56Sopenharmony_ci # Self-destruct! 297db96d56Sopenharmony_ci functions -e deactivate 307db96d56Sopenharmony_ci end 317db96d56Sopenharmony_ciend 327db96d56Sopenharmony_ci 337db96d56Sopenharmony_ci# Unset irrelevant variables. 347db96d56Sopenharmony_cideactivate nondestructive 357db96d56Sopenharmony_ci 367db96d56Sopenharmony_ciset -gx VIRTUAL_ENV "__VENV_DIR__" 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ciset -gx _OLD_VIRTUAL_PATH $PATH 397db96d56Sopenharmony_ciset -gx PATH "$VIRTUAL_ENV/__VENV_BIN_NAME__" $PATH 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ci# Unset PYTHONHOME if set. 427db96d56Sopenharmony_ciif set -q PYTHONHOME 437db96d56Sopenharmony_ci set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME 447db96d56Sopenharmony_ci set -e PYTHONHOME 457db96d56Sopenharmony_ciend 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ciif test -z "$VIRTUAL_ENV_DISABLE_PROMPT" 487db96d56Sopenharmony_ci # fish uses a function instead of an env var to generate the prompt. 497db96d56Sopenharmony_ci 507db96d56Sopenharmony_ci # Save the current fish_prompt function as the function _old_fish_prompt. 517db96d56Sopenharmony_ci functions -c fish_prompt _old_fish_prompt 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_ci # With the original prompt function renamed, we can override with our own. 547db96d56Sopenharmony_ci function fish_prompt 557db96d56Sopenharmony_ci # Save the return status of the last command. 567db96d56Sopenharmony_ci set -l old_status $status 577db96d56Sopenharmony_ci 587db96d56Sopenharmony_ci # Output the venv prompt; color taken from the blue of the Python logo. 597db96d56Sopenharmony_ci printf "%s%s%s" (set_color 4B8BBE) "__VENV_PROMPT__" (set_color normal) 607db96d56Sopenharmony_ci 617db96d56Sopenharmony_ci # Restore the return status of the previous command. 627db96d56Sopenharmony_ci echo "exit $old_status" | . 637db96d56Sopenharmony_ci # Output the original/"old" prompt. 647db96d56Sopenharmony_ci _old_fish_prompt 657db96d56Sopenharmony_ci end 667db96d56Sopenharmony_ci 677db96d56Sopenharmony_ci set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" 687db96d56Sopenharmony_ci set -gx VIRTUAL_ENV_PROMPT "__VENV_PROMPT__" 697db96d56Sopenharmony_ciend 70