#!/bin/sh
glilang=en

echo
if [ "$glilang" = "es" ]; then
    echo "Editar conjuntos de metadatos (Greenstone Editor for Metadata Sets - GEMS)"
    echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
    echo "GEMS NO INCLUYE ABSOLUTAMENTE NINGUNA GARANTÍA."
    echo "Para mayor información vea los términos de la licencia en LICENSE.txt"
    echo "Este es un software abierto, por lo que lo invitamos a que lo distribuya de forma gratuita"
elif [ "$glilang" = "fr" ]; then
    echo "Editer les jeux de méta-données (Greenstone Editor for Metadata Sets - GEMS)"
    echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
    echo "GEMS est fourni sans AUCUNE GARANTIE; pour des détails, voir LICENSE.txt"
    echo "Ceci est un logiciel libre, et vous êtes invité à le redistribuer"
elif [ "$glilang" = "ru" ]; then
    echo "òÅÄÁËÔÉÒÏ×ÁÔØ ÎÁÂÏÒÙ ÍÅÔÁÄÁÎÎÙÈ (Greenstone Editor for Metadata Sets - GEMS)"
    echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
    echo "âéç ÎÅ ÄÁÅÔ áâóïìàôîï îéëáëéè çáòáîôéê; ÄÅÔÁÌÉ ÓÍ. × ÔÅËÓÔÅ LICENSE.TXT"
    echo "üÔÏ - Ó×ÏÂÏÄÎÏ ÒÁÓÐÒÏÓÔÒÁÎÑÅÍÏÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ É ÷Ù ÍÏÖÅÔÅ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÅÇÏ"
else
    echo "Greenstone Editor for Metadata Sets (GEMS)"
    echo "Copyright (C) 2006, New Zealand Digital Library Project, University Of Waikato"
    echo "GEMS comes with ABSOLUTELY NO WARRANTY; for details see LICENSE.txt"
    echo "This is free software, and you are welcome to redistribute it"
fi
echo

##  -------- Run the Greenstone Editor for Metadata Sets --------

# This script must be run from within the directory in which it lives
thisdir=`pwd`
if [ ! -f "${thisdir}/gems.sh" ]; then
    if [ "$glilang" = "es" ]; then
        echo "Este guión deberá ejecutarse desde el directorio en el que reside."
    elif [ "$glilang" = "fr" ]; then
	echo "Ce script doit être exécuté à partir du répertoire dans lequel il se trouve."
    elif [ "$glilang" = "ru" ]; then
	echo "üÔÏÔ ÓËÒÉÐÔ ÄÏÌÖÅÎ ÂÙÔØ ×ÚÑÔ ÉÚ ÄÉÒÅËÔÏÒÉÉ, × ËÏÔÏÒÏÊ ÏÎ ÒÁÓÐÏÌÏÖÅÎ"
    else
	echo "This script must be run from the directory in which it resides."
    fi
    exit 1
fi


##  ---- Determine GSDLHOME ----
gsdlpath=

# Some users may set the above line manually
if [ "x$gsdlpath" = "x" ]; then
    # Check the environment variable first
    if [ "x$GSDLHOME" != "x" ]; then
	gsdlpath=$GSDLHOME

    # If it is not set, assume that the GLI (and thus GEMS) is installed as a subdirectory of Greenstone
    else
	gsdlpath=`(cd .. && pwd)`
    fi
fi

# Check that the Greenstone installation looks OK
if [ "$glilang" = "es" ]; then
    echo "Revisando GSDL: $gsdlpath"
elif [ "$glilang" = "fr" ]; then
    echo "Vérification de GSDL: $gsdlpath"
elif [ "$glilang" = "ru" ]; then
    echo "ðÒÏ×ÅÒËÁ GSDL: $gsdlpath"
else
    echo "Checking GSDL: $gsdlpath"
fi
if [ ! -f "${gsdlpath}/setup.bash" ] ; then
    echo
    if [ "$glilang" = "es" ]; then
	echo "No se pudo encontrar la instalación de Greenstone o está incompleta."
        echo "Trate de reinstalar Greenstone y a continuación ejecute nuevamente"
	echo "este guión."
    elif [ "$glilang" = "fr" ]; then
	echo "L'installation de Greenstone est introuvable ou incomplète."
	echo "Essayez de réinstaller Greenstone et exécutez ce script à nouveau."
    elif [ "$glilang" = "ru" ]; then
	echo "éÎÓÔÁÌÌÑÃÉÑ Greenstone ÎÅ ÂÙÌÁ ÎÁÊÄÅÎÁ ÉÌÉ ÏÎÁ ÎÅÐÏÌÎÁ."
	echo "ðÏÐÒÏÂÕÊÔÅ ÐÏ×ÔÏÒÎÏ ÕÓÔÁÎÏ×ÉÔØ Greenstone, Á ÚÁÔÅÍ ××ÅÓÔÉ ÜÔÏÔ ÓËÒÉÐÔ ÓÎÏ×Á."
    else
	echo "The Greenstone installation could not be found, or is incomplete."
	echo "Try reinstalling Greenstone then running this script again."
    fi
    exit 1
fi

# Setup Greenstone, unless it has already been done
if [ "x$GSDLHOME" = "x" ]; then
    cd "$gsdlpath"
    . setup.bash
    cd "$thisdir"
fi


## ---- Check Java exists ----
javapath=

# Some users may set the above line manually
if [ "x$javapath" = "x" ]; then

    # If it is set, use the JAVA_HOME environment variable
    if [ "x$JAVA_HOME" != "x" ]; then
	javapath="$JAVA_HOME/bin/java"

    # Check if Java is on the search path
    else
	javapath=`which java 2> /dev/null`
    fi
fi

# Check that a Java executable has been found
if [ "$glilang" = "es" ]; then
    echo "Revisando Java: $javapath"
elif [ "$glilang" = "fr" ]; then
    echo "Vérification de Java: $javapath"
elif [ "$glilang" = "ru" ]; then
    echo "ðÒÏ×ÅÒËÁ Java: $javapath"
else
    echo "Checking Java: $javapath"
fi
if [ ! -x "$javapath" ]; then
    echo
    if [ "$glilang" = "es" ]; then
	echo "No se pudo localizar una versión apropiada de Java. Usted deberá "
	echo "instalar un Ambiente de Ejecución Java (versión 1.4 o superior) "
	echo "antes de correr la Editar conjuntos de metadatos."
    elif [ "$glilang" = "fr" ]; then
	echo "Une version adéquate de Java n'a pas pu être localisée."
	echo "Vous devez installer un Java Runtime Environment (version 1.4 ou"
	echo "supérieur) avant de démarrer Editer les jeux de méta-données."
    elif [ "$glilang" = "ru" ]; then
	echo "îÅ ÕÄÁÌÏÓØ ÏÐÒÅÄÅÌÉÔØ ÍÅÓÔÏÎÁÈÏÖÄÅÎÉÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ×ÅÒÓÉÉ Java."
	echo "÷Ù ÄÏÌÖÎÙ ÕÓÔÁÎÏ×ÉÔØ Java Runtime Environment (×ÅÒÓÉÀ 1.4 ÉÌÉ ×ÙÛÅ)"
	echo "ÐÅÒÅÄ ××ÏÄÏÍ òÅÄÁËÔÉÒÏ×ÁÔØ ÎÁÂÏÒÙ ÍÅÔÁÄÁÎÎÙÈ."
    else
	echo "Failed to locate an appropriate version of Java. You must install a"
	echo "Java Runtime Environment (version 1.4 or greater) before running the"
	echo "Greenstone Editor for Metadata Sets."
    fi
    exit 1
fi


## -- Check the version of Java is new enough (1.4.0 or higher) to run the GEMS --
`$javapath -classpath . CheckJavaVersion > /dev/null`
if [ $? -ne 2 ] ; then
    echo
    if [ "$glilang" = "es" ]; then
	echo "La versión del Ambiente de Ejecución Java (JRE por sus siglas en "
	echo "inglés) que usted tiene instalada es demasiado vieja para ejecutar "
	echo "la Editar conjuntos de metadatos. Por favor instale una nueva "
	echo "versión del Ambiente de Ejecución Java (versión 1.4 o posterior)"
	echo "y ejecute nuevamente este guión."
    elif [ "$glilang" = "fr" ]; then
	echo "La version de Java Runtime Environment que vous avez installée est"
	echo "trop vielle pour faire fonctionner Editer les jeux de méta-données."
	echo "Veuillez installer une nouvelle version du JRE (version 1.4 ou plus"
	echo "récente) et redémarrez le script."
    elif [ "$glilang" = "ru" ]; then
	echo "÷ÅÒÓÉÑ Java Runtime Environment, ËÏÔÏÒÕÀ ÷Ù ÕÓÔÁÎÏ×ÉÌÉ, ÏÞÅÎØ ÓÔÁÒÁ,"
	echo "ÞÔÏÂÙ ÕÐÒÁ×ÌÑÔØ òÅÄÁËÔÉÒÏ×ÁÔØ ÎÁÂÏÒÙ ÍÅÔÁÄÁÎÎÙÈ. ðÏÖÁÌÕÊÓÔÁ, "
	echo "ÕÓÔÁÎÏ×ÉÔÅ ÎÏ×ÕÀ ×ÅÒÓÉÀ JRE (×ÅÒÓÉÀ 1.4 ÉÌÉ ÂÏÌÅÅ ÎÏ×ÕÀ) É"
	echo "ÐÅÒÅÕÓÔÁÎÏ×ÉÔÅ ÜÔÏÔ ÓËÒÉÐÔ"
    else
	echo "The version of the Java Runtime Environment you have installed is too"
	echo "old to run the Greenstone Editor for Metadata Sets. Please install a new"
	echo "version of the JRE (version 1.4 or newer) and rerun this script."
    fi
    exit 1
fi


## ---- Check that the GEMS has been compiled ----
if [ ! -f "classes/org/greenstone/gatherer/gems/GEMS.class" ] && [ ! -f "GLI.jar" ]; then
    echo
    if [ "$glilang" = "es" ]; then
	echo "Usted necesita compilar la Editar conjuntos de metadatos"
	echo "(por medio de makegli.sh) antes de ejecutar este guión."
    elif [ "$glilang" = "fr" ]; then
	echo "Vous devez compiler le Editer les jeux de méta-données (en utilisant makegli.sh)"
	echo "avant d'exécuter ce script."
    elif [ "$glilang" = "ru" ]; then
	echo "÷Ù ÄÏÌÖÎÙ ËÏÍÐÉÌÉÒÏ×ÁÔØ òÅÄÁËÔÉÒÏ×ÁÔØ ÎÁÂÏÒÙ ÍÅÔÁÄÁÎÎÙÈ"
	echo "(ÉÓÐÏÌØÚÕÑ makegli.sh) ÐÅÒÅÄ ××ÏÄÏÍ ÜÔÏÇÏ ÓËÒÉÐÔÁ"
    else
	echo "You need to compile the Greenstone Editor for Metadata Sets (using makegli.sh)"
	echo "before running this script."
    fi
    exit 1
fi


## ---- Finally, run the GEMS ----
echo
if [ "$glilang" = "es" ]; then
    echo "Ejecutando la Editar conjuntos de metadatos..."
elif [ "$glilang" = "fr" ]; then
    echo "Exécution de Editer les jeux de méta-données"
elif [ "$glilang" = "ru" ]; then
    echo "ôÅËÕÝÉÊ òÅÄÁËÔÉÒÏ×ÁÔØ ÎÁÂÏÒÙ ÍÅÔÁÄÁÎÎÙÈ..."
else
    echo "Running the Greenstone Editor for Metadata Sets..."
fi

# Other arguments you can provide to GEMS to work around memory limitations, or debug
# -Xms<number>M    To set minimum memory (by default 32MB)
# -Xmx<number>M    To set maximum memory (by default the nearest 2^n to the total remaining physical memory)
# -verbose:gc      To set garbage collection messages
# -Xincgc          For incremental garbage collection (significantly slows performance)
# -Xprof           Function call profiling
# -Xloggc:<file>   Write garbage collection log

$javapath -classpath classes/:GLI.jar:lib/apache.jar org.greenstone.gatherer.gems.GEMS -gsdl $GSDLHOME $*

if [ "$glilang" = "es" ]; then
    echo "¡Hecho!"
elif [ "$glilang" = "fr" ]; then
    echo "Terminé!"
elif [ "$glilang" = "ru" ]; then
    echo "÷ÙÐÏÌÎÅÎÏ!"
else
    echo "Done!"
fi
