#!/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"
}


if [ $# -lt 1 ]; then
    echo "Usage: $COURSESHELL_NAME ENVIRONMENT_FILE_PATH"
    exit 1
fi


ENVIRONMENT_FILE_PATH=$1


if [ ! -e $ENVIRONMENT_FILE_PATH ]; then
    echo "Environment file $ENVIRONMENT_FILE_PATH does not exist"
    exit 1
fi


ENVIRONMENT_DIR=$(readlink -m ~/environment)
ENVIRONMENT_PARENT_DIR=$(readlink -m ~)
TEMP_DIR=$(mktemp -d)


trap cleanup EXIT
set -e


echo Extracting environment...
cp $ENVIRONMENT_FILE_PATH $TEMP_DIR/x.tar.gz
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 specified one...
mv $TEMP_DIR/environment $ENVIRONMENT_PARENT_DIR

echo Done!  Your environment is updated to the contents of this file:
echo "    $ENVIRONMENT_FILE_PATH"

