#!/bin/bash

# Has warpdrive been run before? If it hasn't, then create directory
# where our virtual Python environments will live.

WARPDRIVE_VIRTUALENVS=${WARPDRIVE_VIRTUALENVS:-$HOME/.warpdrive}

test ! -d $WARPDRIVE_VIRTUALENVS && mkdir $WARPDRIVE_VIRTUALENVS

# What is the name of the supplied Python virtualenv environment to
# be activated. Does it already exist? If it doesn't exist then we
# need to create it and initialise it with base packages.

WARPDRIVE_VIRTUALENV_ARGS=""

WARPDRIVE_ENV_NAME="default"

while [ "$#" != "0" ]; do
    case "$1" in
        --python=*)
            WARPDRIVE_PYTHON_BINARY=`echo $1 | sed -e 's/--python=//'`
            WARPDRIVE_VIRTUALENV_ARGS="$WARPDRIVE_VIRTUALENV_ARGS --python=$WARPDRIVE_PYTHON_BINARY"
            ;;
        --python)
            WARPDRIVE_PYTHON_BINARY=$2
            WARPDRIVE_VIRTUALENV_ARGS="$WARPDRIVE_VIRTUALENV_ARGS --python=$WARPDRIVE_PYTHON_BINARY"
            shift
            ;;

        *)
            WARPDRIVE_ENV_NAME=$1
            ;;
    esac

    shift
done

WARPDRIVE_VENV_DIR="$WARPDRIVE_VIRTUALENVS/warpdrive+$WARPDRIVE_ENV_NAME"

create_environment() {
    virtualenv $WARPDRIVE_VIRTUALENV_ARGS $WARPDRIVE_VENV_DIR

    source $WARPDRIVE_VENV_DIR/bin/activate

    if [ x"$WARPDRIVE_PACKAGE_URL" == x"" ]; then
        pip install warpdrive==$WARPDRIVE_VERSION
    else
        pip install $WARPDRIVE_PACKAGE_URL
    fi

    mkdir $WARPDRIVE_VENV_DIR/tmp
}

if [ ! -d $WARPDRIVE_VENV_DIR ];
then
    create_environment > $WARPDRIVE_VIRTUALENVS/warpdrive-activate.log
fi

WARPDRIVE_ACTIVATE="$WARPDRIVE_VENV_DIR/bin/activate"

WARPDRIVE_MASTER=${WARPDRIVE_MASTER:-$WARPDRIVE}
WARPDRIVE=$WARPDRIVE_VENV_DIR/bin/warpdrive
WARPDRIVE_APP_ROOT=$WARPDRIVE_VENV_DIR
WARPDRIVE_SRC_ROOT=`pwd`

echo "export WARPDRIVE=$WARPDRIVE"
echo "export WARPDRIVE_ENV_NAME=$WARPDRIVE_ENV_NAME"
echo "export WARPDRIVE_APP_ROOT=$WARPDRIVE_APP_ROOT"
echo "export WARPDRIVE_SRC_ROOT=$WARPDRIVE_SRC_ROOT"
echo "export WARPDRIVE_MASTER=$WARPDRIVE_MASTER"

echo "source $WARPDRIVE_ACTIVATE"
echo "# Run this command to configure your shell:"
echo "# eval \"\$(warpdrive activate $WARPDRIVE_ENV_NAME)\""
