#!/bin/bash -eEu




trap 'echo >&2 "$0: unknown error."' ERR
scenarios='marathon marathon-2 marathon-infinity marathon-evil marathon-red tempus-irae excalibur'
releases=`date +%Y%m%d`
destdir='debian/tmp'

set_vars () {
    case "$scenario" in
        marathon)
            dir='Marathon' size=38M
	    name="Marathon-$releases-Data.zip"
	    url=https://github.com/Aleph-One-Marathon/alephone/releases/download/release-$releases/$name;;
        marathon-2)
	    dir='Marathon 2' size=26M
	    name="Marathon2-$releases-Data.zip"
	    url=https://github.com/Aleph-One-Marathon/alephone/releases/download/release-$releases/$name;;
        marathon-infinity)
            dir='Marathon Infinity' size=29M
	    name="MarathonInfinity-$releases-Data.zip"
	    url=https://github.com/Aleph-One-Marathon/alephone/releases/download/release-$releases/$name;;
        marathon-evil)
            dir='Marathon EVIL' size=31M
	    url=http://files3.bungie.org/trilogy/MarathonEvil.zip;; #for alephone EVIL no has release version
        marathon-red)
            dir='Marathon RED' size=18M
	    url=http://files3.bungie.org/trilogy/MarathonRED.zip;; # for alephone RED no has release version
        tempus-irae)
            dir=Tempus_Irae size=98M
	    url=http://nardofiles.bungie.org/Tempus_Irae.zip;; # Linux/alephone Irae no has release version
        excalibur)
            dir='EMR Infinity ƒ' size=21M
            url=http://trilogyrelease.bungie.org/files/extras/emr21.zip;; # TODO: seems this are with MAC specific format
        *)
            echo >&2 "Unknown scenario, or not official \`$scenario'."
            exit 1;;
    esac
}

case "${1-}" in
    install=*|install)
# should detect firts if was without any argument,there's no way to discard if no has argument
	releases="${1-}"
	if [ "$releases" = "install" ]; then
	    releases=`date +%Y%m%d`
	else
	    releases="${releases#install=}"
	fi
        shift
        mkdir -p files
        for scenario
        do
            rm -rf "$dir" $destdir/$scenario # ensure idempotency
            set_vars
            printf "Installing %s (%s) as %s:\tdownloading... " $scenario $size $name
	    if [ ! -f files/$name ]; then
        	wget -c "$url" -O files/$name
		if [ "$?" != "0" ]; then
                    echo "no release file found for today, failed downloading";exit 1
		fi
	    fi
	    if [ -s files/$name ]; then
                echo "already downloaded"
	    else
                echo "file present but seems not valid, run again";exit 1
	    fi
            echo -n "extracting... "
	    mkdir -p $destdir
            unzip -qd$destdir files/${name}
# TODO : no instalar, solo cambiar de nombre, later verify if size are correct of file corrupted
            mv $destdir/"$dir" $destdir/$scenario
            echo "done in $destdir/$scenario"
        done
        ;;
    remove)
        shift
        for scenario
        do
            set_vars
            rm -r files
            rm -r $destdir/$scenario
        done
        ;;
    list-available) echo "$scenarios";; # used in prerm script.
    *)
        echo "Usage: $0 [install[=YYYYMMDD]|remove] [SCENARIO ...]"
        fmt <<< "Scenarios: $scenarios"
        exit 1;;
esac


