#!/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
SHIB_HOME=
if [ -n "$IDP_HOME" ] ; then
	SHIB_HOME=$IDP_HOME
fi
if [ -n "$SP_HOME" ] ; then
	SHIB_HOME=$SP_HOME
fi
if [ ! -n "$SHIB_HOME" ] ; then
	echo "Error: Neither IDP_HOME nor SP_HOME is defined."
	exit
fi

ENDORSED=$SHIB_HOME/endorsed

if [ ! \( -f "$SHIB_HOME/lib/shib-util.jar" -a -r "$SHIB_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=${SHIB_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:"$SHIB_HOME"

##Here we go
$JAVACMD -Djava.endorsed.dirs="$ENDORSED" -cp $SHIB_UTIL_CLASSPATH  edu.internet2.middleware.shibboleth.utils.MetadataTool "$@"
