#!/bin/sh

PRG=$0
#progname=`basename $0`

# Resolve symlinks. See 4152645.
while [ -L "$PRG" ]; do
    ls=`/bin/ls -ld "$PRG"`
    link=`/usr/bin/expr "$ls" : '.*-> \(.*\)$'`
    if /usr/bin/expr "$link" : '/' > /dev/null; then
	PRG="$link"
    else
	PRG="`/usr/bin/dirname $PRG`/$link"
    fi
done

#unset JAVA_HOME
unset CLASSPATH

# Get the full name of the directory where the Handle.net software is installed
HDLHOME=`dirname "$PRG"`
HDLHOME="${HDLHOME}/../"
#echo "HDLHOME is $HDLHOME"

# Load all of the .jar files in the lib directory into the classpath
CP=""
for jarfile in ${HDLHOME}lib/*.jar ; do
  CP=${CP}:${jarfile}
done
for jarfile in ${HDLHOME}lib/*/*.jar ; do
  CP=${CP}:${jarfile}
done

COMMAND=$1
# Remove command from args to be passed on
shift

# Run appropriate command
case $COMMAND in
    java)
      exec java -cp "${CP}" "$@"
      ;;
    admintool)
      exec java -cp "${CP}" net.handle.apps.admintool.controller.Main "$@"
      ;;
    oldadmintool)
      exec java -cp "${CP}" net.handle.apps.gui.hadmin.HandleTool "$@"
      ;;
    keyutil)
      exec java -cp "${CP}" net.handle.apps.tools.KeyUtil "$@"
      ;;
    keygen)
      exec java -cp "${CP}" net.handle.apps.tools.KeyGenerator "$@"
      ;;
    qresolverGUI)
      exec java -cp "${CP}" net.handle.apps.gui.resolver.Main "$@"
      ;;
    qresolver)
      exec java -cp "${CP}" net.handle.apps.simple.HDLTrace "$@"
      ;;
    getrootinfo)
      exec java -cp "${CP}" net.handle.apps.tools.GetRootInfo "$@"
      ;;
    getsiteinfo)
      exec java -cp "${CP}" net.handle.apps.tools.GetSiteInfo "$@"
      ;;
    genericbatch)
      exec java -cp "${CP}" net.handle.apps.batch.GenericBatch "$@"
      ;;
    create)
      exec java -cp "${CP}" net.handle.apps.simple.HDLCreate "$@"
      ;;
    delete)
      exec java -cp "${CP}" net.handle.apps.simple.HDLDelete "$@"
      ;;
    list)
      exec java -cp "${CP}" net.handle.apps.simple.HDLList "$@"
      ;;
    trace)
      exec java -cp "${CP}" net.handle.apps.simple.HDLTrace "$@"
      ;;
    home-na)
      exec java -cp "${CP}" net.handle.apps.simple.HomeNA "$@"
      ;;
    convert-siteinfo)
      exec java -cp "${CP}" net.handle.apps.simple.SiteInfoConverter "$@"
      ;;
    convert-values)
      exec java -cp "${CP}" net.handle.apps.simple.HandleValuesConverter "$@"
      ;;
    convert-localinfo)
      exec java -cp "${CP}" net.handle.apps.simple.LocalInfoConverter "$@"
      ;;
    convert-key)
      exec java -cp "${CP}" net.handle.apps.simple.KeyConverter "$@"
      ;;
    *)
      echo "Unknown Handle.Net server command: ${COMMAND}"
      ;;
esac

