#!/bin/sh
#
# XEP command-line utility
# supports:
#  * XML catalogs
#  * Pointer to XEP configuration file
#  * Pointer to the license file
#  * Pointer to the "file not found" image
#
__VERSION__="$Id: suse-xep 24232 2007-08-30 15:07:45Z toms $"

#
# Configuring variables
#
TEMP=$(type -p xep)
TDIR="${TEMP%/xep}"
XEP_HOME=${XEP_HOME:-"$TDIR"}
JAVA_HOME="/etc/alternatives/jre"
XEP_CONFIG_FILE=${XEP_CONFIG_FILE:-"$DTDROOT/etc/XEP/xep-suse.xml"}

XEP_MEMORY=${XEP_MEMORY:-"-Xmx700m"}
XEP_STACK=${XEP_STACK:-"-Xss512K"}

CP="$JAVA_HOME/lib/tools.jar:\
$XEP_HOME/lib/xep.jar:\
$XEP_HOME/lib/saxon.jar:\
$XEP_HOME/lib/xt.jar:\
/usr/share/java/xml-commons-resolver.jar:\
$DTDROOT/etc"

XEP_BROKENIMAGE=${XEP_BROKENIMAGE:-"file://$XEP_HOME/images/404.gif"}
XEP_LICENSE=${XEP_LICENSE:-"file://$XEP_HOME/license.xml"}

# Consistency checks
if [ ! -d ${XEP_HOME#file://} ]; then
  echo -e "\033[31mERROR: XEP Home not found. Got »$XEP_HOME«\033[m\017"
  echo -e "Solution:"
  echo -e "  a) Check the environment variable PATH. " \
          "Can you see the XEP directory? If not extend PATH."
  echo -e "or"
  echo -e "  b) Delete the environment variable XEP_HOME"
  echo -e "or"
  echo -e "  c) Export the environment variable XEP_HOME and point it to the correct directory"
  exit 10
fi


if [ ! -e ${XEP_LICENSE#file://} ]; then
  echo -e "\033[31mERROR: XEP License File not found. Got »$XEP_LICENSE«\033[m\017"
  echo -e "Solution:"
  echo -e "  a) Delete the environment variable XEP_LICENSE"
  echo -e "or"
  echo -e "  b) Export the environment variable XEP_LICENSE and point it to the correct license file"
  echo -e "or"
  echo -e "  c) Check the XEP_HOME environment variable"
  exit 10
fi

if [ ! -e ${XEP_BROKENIMAGE#file://} ]; then
  echo -e "\033[31mERROR: XEP Broken Image File not found. Got »$XEP_BROKENIMAGE«\033[m\017"
  echo -e "Solution:"
  echo -e "  a) Delete the environment variable XEP_BROKENIMAGE"
  echo -e "or"
  echo -e "  b) Export the environment variable XEP_BROKENIMAGE and point it to the correct image file"
  echo -e "or"
  echo -e "  c) Check the XEP_HOME environment variable"
  exit 10
fi

if [ ! -e ${XEP_CONFIG_FILE#file://} ]; then
  echo -e "\033[31mERROR: XEP Configuration File not found. Got »$XEP_CONFIG_FILE«\033[m\017"
  echo -e "Solution:"
  echo -e "  a) Delete the environment variable XEP_CONFIG_FILE"
  echo -e "  or"
  echo -e "  b) Export the environment variable XEP_CONFIG_FILE and point it to the correct config file"
  exit 10
fi


#
echo -e "\033[34m* Using $__VERSION__\033[m\017"
echo -e "\033[34m* XEP using configuration file »$XEP_CONFIG_FILE«\033[m\017"
echo -e "\033[34m* XEP-License: »$XEP_LICENSE«\033[m\017"

if  [ -s /etc/alternatives/xml-commons-resolver ]; then
echo -e "\033[34m* XEP has catalog support\033[m\017"
$JAVA_HOME/bin/java \
    $XEP_MEMORY $XEP_STACK \
    -classpath "$CP" \
    -Dcom.renderx.sax.entityresolver=org.apache.xml.resolver.tools.CatalogResolver \
    -Dcom.renderx.jaxp.uriresolver=org.apache.xml.resolver.tools.CatalogResolver \
    -Dcom.renderx.xep.CONFIG="$XEP_CONFIG_FILE" \
    -Dcom.renderx.xep.LICENSE="$XEP_LICENSE"\
    -Dcom.renderx.xep.BROKENIMAGE="$XEP_BROKENIMAGE" \
    com.renderx.xep.XSLDriver "$@"
else
echo -e "\033[31m* XEP WARNING: No Catalog Support!\033[m\017"
$JAVA_HOME/bin/java \
    -classpath "$CP" \
    $XEP_MEMORY $XEP_STACK \
    -Dcom.renderx.xep.CONFIG="$XEP_CONFIG_FILE" \
    -Dcom.renderx.xep.LICENSE="$XEP_LICENSE"\
    -Dcom.renderx.xep.BROKENIMAGE="$XEP_BROKENIMAGE" \
    com.renderx.xep.XSLDriver "$@"
fi
