#!/bin/sh
##
## 2004-08-17 Guillaume Dallaire
## This script installs the base FGS suite.
##
## This is the file to distribute to allow people to install FGS.
##
## First argument or $MODULES_SRC : path or URL of where to get FGS modules
##
FGS_BASE_FILENAME=fgs-base.tar.gz

## This function echo its argument and exit
fatal_error ()
{
    echo
    [ -n "$1" ] && echo "! $1"
    echo
    exit 1
}

print_welcome ()
{
    # Clear screen
    tput clear

    echo
    echo '***** Welcome to the FGS Installer v0.1 *****'
    echo
    echo 'This script is meant to make installing FGS components as easy as possible.'
    echo
    echo 'THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR'
    echo 'IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS'
    echo 'FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR'
    echo 'COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER'
    echo 'IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION'
    echo 'WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.'
    echo
    echo 'Please send any questions to <foss-gis-suite@lists.maptools.org>.'
    echo
    echo 'To install the FGS suite, press ENTER.'
    echo
    echo 'To cancel, press Control-C.'

    read foo < /dev/tty
}

is_wget_installed ()
{
    which wget 2>&1 >/dev/null || fatal_error "The wget command isn't installed on this system, please go to __ and install it."
}

########################## MAIN Section

[ -z "$MODULES_SRC" ] && MODULES_SRC=$1
[ -z "$MODULES_SRC" ] && MODULES_SRC='http://www.maptools.org/dl/fgs/releases/9.5/modules/'

## Path or URL not specified. Use default path or default URL.
if [ -z "$MODULES_SRC" ] ; then
    MODULES_SRC=.
    [ -f $MODULES_SRC/$FGS_BASE_FILENAME ] || fatal_error "You must specify the source of FGS modules as first argument. You can use an url or a path."
fi


print_welcome

if [ x`whoami` == x'root' ] ; then
   BASE_DIR='/opt'
else
   BASE_DIR="$HOME"
fi

while 
    echo -n "Where do you want to install the FGS suite [$BASE_DIR/fgs] ? "
    read FGS_HOME
    [ -z "$FGS_HOME" ] && FGS_HOME="${BASE_DIR}/fgs"
    [ -d "$FGS_HOME" ]
do
    echo "The directory '$FGS_HOME' already exists, please choose a new one."
done

mkdir $FGS_HOME || fatal_error "Cannot create directory '$FGS_HOME', aborting..."

cd $FGS_HOME
mkdir $FGS_HOME/tmp

echo

## url ?
if [ `echo $MODULES_SRC | grep -c 'http://'` -eq 1 ] ; then
    is_wget_installed
    cd $FGS_HOME
    echo -n "+ Downloading and extracting $FGS_BASE_FILENAME from $MODULES_SRC..."
    wget -q $MODULES_SRC/$FGS_BASE_FILENAME -O - | tar xz || fatal_error "Cannot download '$MODULES_SRC/$FGS_BASE_FILENAME', aborting..."
    echo 'ok'
else
    ## From file (cdrom, dvd, etc...)
    [ -f $MODULES_SRC/$FGS_BASE_FILENAME ] || fatal_error "Cannot find file '$MODULES_SRC/$FGS_BASE_FILENAME', aborting..."
    echo -n "+ Extracting $FGS_BASE_FILENAME from $MODULES_SRC..."
    cd $FGS_HOME
    tar xzf $MODULES_SRC/$FGS_BASE_FILENAME
    echo 'ok'
fi

echo "+ Running base's installer"
## Finally, run the next install step from the packege's installer.
$FGS_HOME/etc/fgs/install.sh $FGS_HOME $MODULES_SRC $2

