#!/bin/bash


COURSESHELL_NAME=$(cat /usr/local/bin/courseshell.name)


function cleanup()
{
    rm -rf $TEMP_DIR
}


function restore_instructions()
{
    echo "You may want to restore your environment for this course to its"
    echo "original state.  Type this command to restore it:"
    echo
    echo "    $COURSESHELL_NAME restore"
}


ENVIRONMENT_DIR=$(readlink -m ~/environment)
ENVIRONMENT_PARENT_DIR=$(readlink -m ~)
ENVIRONMENT_URL_FILE_PATH=/usr/local/bin/environment.url
TEMP_DIR=$(mktemp -d)


if [ ! -e $ENVIRONMENT_URL_FILE_PATH ]; then
    echo "Environment URL file is missing; did you delete it?"
    echo "It should be here:"
    echo "    $ENVIRONMENT_URL_FILE_PATH"
    echo
    restore_instructions
    exit 1
fi


ENVIRONMENT_URL=$(cat $ENVIRONMENT_URL_FILE_PATH)


if [ "$ENVIRONMENT_URL" == "" ]; then
    echo "Environment URL file is empty; did you change it?"
    echo "It should contain a single URL here:"
    echo "    $ENVIRONMENT_URL_FILE_PATH"
    echo
    restore_instructions
    exit 1
fi


trap cleanup EXIT
set -e


echo Downloading environment from $ENVIRONMENT_URL...

wget $ENVIRONMENT_URL --output-document=$TEMP_DIR/x.tar.gz

echo Extracting environment...
mkdir $TEMP_DIR/environment
tar xzf $TEMP_DIR/x.tar.gz -C $TEMP_DIR/environment/

echo Deleting current environment...
cd $ENVIRONMENT_PARENT_DIR
rm -rf $ENVIRONMENT_DIR

echo Replacing environment with the newly-downloaded one...
mv $TEMP_DIR/environment $ENVIRONMENT_PARENT_DIR

echo Done!  Your environment is up to date!

