#!/bin/sh

##We need a JVM
if [ ! -n "$JAVA_HOME" ] ; then
  echo "Error: JAVA_HOME is not defined."
  exit
fi

if [ ! -n "$JAVACMD" ] ; then
  JAVACMD=$JAVA_HOME/bin/java
fi

if [ ! -x "$JAVACMD" ] ; then
  echo "Error: JAVA_HOME is not defined correctly."
  echo "Cannot execute $JAVACMD"
  exit
fi


##Find the shibboleth components
if [ ! -n "$IDP_HOME" ] ; then
  echo "Error: IDP_HOME is not defined."
  exit
fi

## Where log4j config file is
LOG_CONFIG=$IDP_HOME/etc/log4j.properties

if [ ! \( -f "$IDP_HOME/lib/shib-util.jar" -a -r "$IDP_HOME/lib/shib-util.jar" \) ] ; then
  echo "Error: Cannot find the shibboleth jar (shib-util.jar)."
  echo "       If you downloaded the shibboleth source, you need to run \"ant build-util\""
  exit
fi


##Grab all the dependencies
if [ -n "$CLASSPATH" ] ; then
  SHIB_UTIL_CLASSPATH=$CLASSPATH
fi

DIRLIBS=${IDP_HOME}/lib/*.jar
for i in ${DIRLIBS}
do
    # if the directory is empty, then it will return the input string
    # this is stupid, so case for it
    if [ "$i" != "${DIRLIBS}" ] ; then
      if [ -z "$SHIB_UTIL_CLASSPATH" ] ; then
        SHIB_UTIL_CLASSPATH=$i
      else
        SHIB_UTIL_CLASSPATH="$i":$SHIB_UTIL_CLASSPATH
      fi
    fi
done
SHIB_UTIL_CLASSPATH=$SHIB_UTIL_CLASSPATH:"$IDP_HOME"

##Here we go
$JAVACMD -Dlog4j.configuration="$LOG_CONFIG" -cp $SHIB_UTIL_CLASSPATH  edu.internet2.middleware.shibboleth.utils.ExtKeyTool "$@"
