#!/bin/bash

# This script is a wrapper for calling the CCM commandline utilites 
# used for maintence of a CCM installation.

# Variables for directories.
# The path are relative to the bin directory of the CCM installation. This
# means that this script has to be executed from the bin directory. If you
# want to use this script from another directory, or include it into your 
# PATH, you have to adjust the paths.
CCM_LIB_DIR="../lib"
CCM_HOME_DIR="../.."

# We need CATALINA_HOME environment variable to access Tomcat's lib dir.
if [[ -z "$CATALINA_HOME" ]] ;  then
  echo CATALINE_HOME not set. Guessing ... 

  if [ -d /usr/share/tomcat6 ]
      then
      CATALINA_HOME="/usr/share/tomcat6"
  elif [ -d /usr/share/tomcat-6 ]
      then
      CATALINA_HOME="/usr/share/tomcat-6"
  elif [ -d /opt/tomcat6 ]
      then
      CATALINA_HOME="/opt/tomcat6"
  else
      echo
      echo ===================================================
      echo Environment variable CATALINA_HOME not set. We need
      echo to know the location of Tomcat\'s lib directory.
      echo So use 
      echo export CATALINA_HOME=/path/to/tomcat/installation
      echo to point us to the correct location and run ccm
      echo again.
      echo ===================================================
      echo
      exit 1      
  fi
      
  echo 
  echo Using CATALINA_HOME = $CATALINA_HOME
  echo If this doesn\'t work use
  echo export CATALINA_HOME=/path/to/tomcat/installation
  echo to point us to the correct location.
  
fi
CATALINA_LIB_DIR="${CATALINA_HOME}/lib"

# Script logic starts here
echo "checking if all paths are correct..."
files=$(ls ${CCM_LIB_DIR}/ccm-core*.jar 2> /dev/null | wc -l)

if [ "$files" == "0" ]
then
    echo "Error: CCM_LIB_DIR is invalid \(no ccm-core*.jar file\(s\) in CCM_LIB_DIR\)."
    exit 1
fi

if [ ! -d ${CCM_HOME_DIR}/templates ]
then
    echo "Error: CCM_HOME_DIR path is invalid \(no templates directory in CCM_HOME_DIR\)."
    exit 1
fi

if [ ! -f ${CATALINA_LIB_DIR}/catalina.jar ]
then
    echo "Error: CATALINA_LIB_DIR is invalid \(no catalina.jar in CATALINA_LIB_DIR\)."
    exit 1
fi

#Convert to absolute path:
CCM_HOME_DIR=`cd ${CCM_HOME_DIR}; pwd`

echo "executing ccm-run"
java -cp ${CCM_LIB_DIR}/"*":${CATALINA_LIB_DIR}/"*" -Dccm.home=${CCM_HOME_DIR} "$@"