# Modified venv activation script used with portable Python # Adds cmapi/ and cmapi/deps/ dirs to PYTHONPATH # Expects to be located in cmapi/dev_tools and deps to be located in cmapi/deps (as written in README.md) # This file must be used with "source bin/activate" *from bash* # You cannot run it directly cmapi_dir=$(realpath $(dirname "${BASH_SOURCE[0]}")/../) venv_dir=$cmapi_dir/python deps_dir=$cmapi_dir/deps deactivate () { # reset old environment variables if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then PATH="${_OLD_VIRTUAL_PATH:-}" export PATH unset _OLD_VIRTUAL_PATH fi if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" export PYTHONHOME unset _OLD_VIRTUAL_PYTHONHOME fi if [ -n "${_OLD_VIRTUAL_PYTHONPATH:-}" ] ; then PYTHONPATH="${_OLD_VIRTUAL_PYTHONPATH:-}" export PYTHONPATH unset _OLD_VIRTUAL_PYTHONPATH fi # Call hash to forget past commands. Without forgetting # past commands the $PATH changes we made may not be respected hash -r 2> /dev/null if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then PS1="${_OLD_VIRTUAL_PS1:-}" export PS1 unset _OLD_VIRTUAL_PS1 fi unset VIRTUAL_ENV unset VIRTUAL_ENV_PROMPT if [ ! "${1:-}" = "nondestructive" ] ; then # Self destruct! unset -f deactivate fi } # unset irrelevant variables deactivate nondestructive export VIRTUAL_ENV=$venv_dir _OLD_VIRTUAL_PATH="$PATH" echo "Adding $VIRTUAL_ENV/bin to PATH" PATH="$VIRTUAL_ENV/bin:$PATH" export PATH # unset PYTHONHOME if set # this will fail if PYTHONHOME is set to the empty string (which is bad anyway) # could use `if (set -u; : $PYTHONHOME) ;` in bash if [ -n "${PYTHONHOME:-}" ] ; then _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" unset PYTHONHOME fi # Save the old PYTHONPATH if it exists if [ -n "${PYTHONPATH:-}" ]; then _OLD_VIRTUAL_PYTHONPATH="${PYTHONPATH:-}" fi # Add cmapi/deps directory to PYTHONPATH echo "Adding $cmapi_dir and $deps_dir to PYTHONPATH" export PYTHONPATH="${cmapi_dir}:${deps_dir}:${PYTHONPATH:-}" if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then _OLD_VIRTUAL_PS1="${PS1:-}" PS1="(portpy) ${PS1:-}" export PS1 VIRTUAL_ENV_PROMPT="(portpy) " export VIRTUAL_ENV_PROMPT fi # Call hash to forget past commands. Without forgetting # past commands the $PATH changes we made may not be respected hash -r 2> /dev/null