#!/bin/sh

#SCRIPT=$(readlink -f "$0")
#SCRIPTPATH=$(dirname "$SCRIPT")
#. "$SCRIPTPATH/.dbwebb.version"
. "bin/.dbwebb.version"

ECHO="printf"
TMPFILE="/tmp/dbwebb-create$$"


#
# Print usage of script
#
printUsage()
{
    $ECHO "\nUtility dbwebb-create $VERSION by Mikael Roos, to create a personlized lab."
    $ECHO "\n"
    $ECHO "\nUsage: dbwebb-create [options] <lab>"
    $ECHO "\n"
    $ECHO "Options:"
    $ECHO "\n"
    $ECHO "\n  -h         Print this message and exit."
    $ECHO "\n  -v         Print version and exit."
    $ECHO "\n"
    $ECHO "\Lab:"
    $ECHO "\n"
    $ECHO "\n  lab1      Create laboration 1."
    $ECHO "\n  lab2      Create laboration 2."
    $ECHO "\n  lab3      Create laboration 3."
    $ECHO "\n  lab4      Create laboration 4."
    $ECHO "\n  lab5      Create laboration 5."
    $ECHO "\n  lab6      Create laboration 6."
    $ECHO "\n"
    $ECHO "\nExample:"
    $ECHO "\n"
    $ECHO "\n  $ dbwebb-create lab1"
    $ECHO "\n  $ dbwebb-create lab5"
    $ECHO "\n"
    $ECHO "\n"
}



#
# Create a lab for course javascript1
#
createLabJavaScript1()
{
    LAB="$1"
    WHERE="$TARGET/me/$2/$LAB"
    HERE="$TARGET/me/$2"

    $ECHO "\nCreating $COURSE $LAB."

    # Check if init was run?
    if [ ! -d "$HERE" ]
    then
        echo "\nThe directory '$HERE' is missing.\nDid you run the command bin/dbwebb init?"
        exit 1
    fi

    # Check if lab is already there
    if [ -f "$WHERE/answer.js" ]
    then
        echo "\nYou already have a lab directory with lab-files.\n$WHERE\nUse it or remove its content if you want to create a new lab."
        exit 1
    fi

    # Create the key
    KEY="`${WGET}- \"$SERVICE/?$GET_KEY&lab=$LAB\"`"

    # The lab description & the answers
    $ECHO "\ninstruction.html"
    $WGET "$WHERE/instruction.html" "$SERVICE/$GET_LAB&key=$KEY"

    $ECHO "\nanswer.html"
    $WGET "$WHERE/answer.html" "$SERVICE/$GET_ANSWER_HTML&key=$KEY"

    $ECHO "\nanswer.js"
    $WGET "$WHERE/answer.js" "$SERVICE/$GET_ANSWER_JS&key=$KEY"

    $ECHO "\nExtras\n"
    $WGET "$WHERE/extra.tar" "$SERVICE/$GET_ANSWER_EXTRA&key=$KEY"
    tar -xvf "$WHERE/extra.tar" -C "$WHERE"
    rm -f "$WHERE/extra.tar"

    $ECHO "\nYou can find the lab and all files here:\n$WHERE"
}



#
# Create a lab for course python
#
createLabPython()
{
    LAB="$1"
    WHERE="$TARGET/me/$2/$LAB"
    HERE="$TARGET/me/$2"

    $ECHO "\nCreating $COURSE $LAB."

    # Check if init was run?
    if [ ! -d "$HERE" ]
    then
        echo "\nThe directory '$HERE' is missing.\nDid you run the command bin/dbwebb init?"
        exit 1
    fi

    # Check if lab is already there
    if [ -f "$WHERE/answer.py" ]
    then
        echo "\nYou already have a lab directory with lab-files.\n$WHERE\nUse it or remove its content if you want to create a new lab."
        exit 1
    fi

    # Create the key
    KEY="`${WGET}- \"$SERVICE/?$GET_KEY&lab=$LAB\"`"

    # The lab description & the answers
    $ECHO "\ninstruction.html"
    $WGET "$WHERE/instruction.html" "$SERVICE/$GET_LAB&key=$KEY"

    $ECHO "\nanswer.json"
    $WGET "$WHERE/answer.json" "$SERVICE/$GET_ANSWER_JSON&key=$KEY"

    $ECHO "\nanswer.py"
    $WGET "$WHERE/answer.py" "$SERVICE/$GET_ANSWER_PY&key=$KEY"
    chmod 755 "$WHERE/answer.py"

    $ECHO "\nDbwebb.py"
    $WGET "$WHERE/Dbwebb.py" "$SERVICE/$GET_ANSWER_PYDBWEBB&key=$KEY"

    $ECHO "\nExtras\n"
    $WGET "$WHERE/extra.tar" "$SERVICE/$GET_ANSWER_EXTRA&key=$KEY"
    tar -xvf "$WHERE/extra.tar" -C "$WHERE"
    rm -f "$WHERE/extra.tar"

    $ECHO "\nYou can find the lab and all files here:\n$WHERE"
}



#
# Create a lab for course htmlphp
#
createLabHtmlphp()
{
    LAB="$1"
    WHERE="$TARGET/me/$2/$LAB"
    HERE="$TARGET/me/$2"

    $ECHO "\nCreating $COURSE $LAB."

    # Check if init was run?
    if [ ! -d "$HERE" ]
    then
        echo "\nThe directory '$HERE' is missing.\nDid you run the command bin/dbwebb init?"
        exit 1
    fi

    # Check if lab is already there
    if [ -f "$WHERE/answer.py" ]
    then
        echo "\nYou already have a lab directory with lab-files.\n$WHERE\nUse it or remove its content if you want to create a new lab."
        exit 1
    fi

    # Create the key
    KEY="`${WGET}- \"$SERVICE/?$GET_KEY&lab=$LAB\"`"

    # The lab description & the answers
    $ECHO "\ninstruction.html"
    $WGET "$WHERE/instruction.html" "$SERVICE/$GET_LAB&key=$KEY"

    $ECHO "\nanswer.json"
    $WGET "$WHERE/answer.json" "$SERVICE/$GET_ANSWER_JSON&key=$KEY"

    $ECHO "\nanswer.py"
    $WGET "$WHERE/answer.py" "$SERVICE/$GET_ANSWER_PY&key=$KEY"
    chmod 755 "$WHERE/answer.py"

    $ECHO "\nDbwebb.py"
    $WGET "$WHERE/Dbwebb.py" "$SERVICE/$GET_ANSWER_PYDBWEBB&key=$KEY"

    $ECHO "\nExtras\n"
    $WGET "$WHERE/extra.tar" "$SERVICE/$GET_ANSWER_EXTRA&key=$KEY"
    tar -xvf "$WHERE/extra.tar" -C "$WHERE"
    rm -f "$WHERE/extra.tar"

    $ECHO "\nYou can find the lab and all files here:\n$WHERE"
}



#
# Main
#
if [ $# -lt 1 ]
then
    printUsage
fi

# Get settings from config-file
. "./.dbwebb.config"


# Get options
while getopts ":hv" opt
do
    case $opt in
        (h) 
            printUsage
            exit 0
            ;;

        (v) 
            $ECHO "$VERSION\n"
            exit 0
            ;;

        \?)
            $ECHO "\nInvalid option: -$OPTARG" >&2
            $ECHO "\n"
            $ECHO "\nUse the following to get help."
            $ECHO "\ndbwebb-create -h"
            $ECHO "\n"
            $ECHO "\n"
            exit 1
            ;;
    esac
done
shift $((OPTIND - 1))


#
# Execute command
#
CMD=$1
if [ $COURSE = "javascript1" ]
then
    case $CMD in
        lab1) createLabJavaScript1 "lab1" "kmom02" ;;
        lab2) createLabJavaScript1 "lab2" "kmom03" ;;
        lab3) createLabJavaScript1 "lab3" "kmom04" ;;
        lab4) createLabJavaScript1 "lab4" "kmom04" ;;
        lab5) createLabJavaScript1 "lab5" "kmom05" ;;
        labtest) createLabJavaScript1 "labtest" "kmom01" ;;
        *)    
            printUsage
            exit 1
            ;;
    esac

elif [ $COURSE = "python" ]
then
    case $CMD in
        lab1) createLabPython "lab1" "kmom02" ;;
        lab2) createLabPython "lab2" "kmom03" ;;
        lab3) createLabPython "lab3" "kmom04" ;;
        lab4) createLabPython "lab4" "kmom05" ;;
        lab5) createLabPython "lab5" "kmom06" ;;
        lab6) createLabPython "lab6" "kmom06" ;;
        labtest) createLabPython "labtest" "kmom01" ;;
        *)
            printUsage
            exit 1
            ;;
    esac

elif [ $COURSE = "htmlphp" ]
then
    case $CMD in
        lab1) createLabHtmlphp "lab1" "kmom02" ;;
        lab2) createLabHtmlphp "lab2" "kmom03" ;;
        lab3) createLabHtmlphp "lab3" "kmom04" ;;
        lab4) createLabHtmlphp "lab4" "kmom05" ;;
        lab5) createLabHtmlphp "lab5" "kmom06" ;;
        labtest) createLabHtmlphp "labtest" "kmom01" ;;
        *)
            printUsage
            exit 1
            ;;
    esac

fi

rm -f $TMPFILE

$ECHO "\n"
exit 0
