# vim: filetype=sh
#
# Initialize the MINERVA_INSTANCE_ROOT variable, so that all resources of this
# Minerva instances can be found.
#

function absolute_dir {
    local old_pwd="$(pwd)"
    cd "$1"
    pwd
    cd "$old_pwd"
}

SHELL_NAME="${SHELL##*/}"

if [ $SHELL_NAME = "bash" ]; then
    SCRIPT_PATH="${BASH_SOURCE[0]}"
elif [ $SHELL_NAME = "zsh" ]; then
    SCRIPT_PATH="${(%):-%x}"
fi

RELATIVE_SCRIPT_DIR=${SCRIPT_PATH%/*}

SCRIPT_DIR=$(absolute_dir $RELATIVE_SCRIPT_DIR)

export MINERVA_INSTANCE_ROOT=${SCRIPT_DIR%/*}

echo "Minerva instance root: $MINERVA_INSTANCE_ROOT"

if [ -z "$VIRTUAL_ENV" ]
then
    VENV_DIR="$MINERVA_INSTANCE_ROOT/venv"

    if [ ! -d $VENV_DIR ]
    then
        echo "Creating virtualenv at $VENV_DIR"

        virtualenv -p python3 $VENV_DIR

        source $VENV_DIR/bin/activate

        pip3 install -r $MINERVA_INSTANCE_ROOT/requirements.txt
    else
        source $VENV_DIR/bin/activate
    fi
fi

export PATH=$MINERVA_INSTANCE_ROOT/bin:$PATH

