#!/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 WEB-INF/bin directory of the CCM installation. # This means that this script has to be executed from the WEB-INF/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_RES_DIR="./bundle/res/" CCM_CLASS_DIR="../classes" 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/tomcat ] then CATALINA_HOME="/usr/share/tomcat" elif [ -d /opt/tomcat ] then CATALINA_HOME="/opt/tomcat" elif [ -d /usr/share/tomcat8 ] then CATALINA_HOME="/usr/share/tomcat8" elif [ -d /usr/share/tomcat-8 ] then CATALINA_HOME="/usr/share/tomcat-8" elif [ -d /opt/tomcat8 ] then CATALINA_HOME="/opt/tomcat8" elif [ -d /usr/share/tomcat7 ] then CATALINA_HOME="/usr/share/tomcat7" elif [ -d /usr/share/tomcat-7 ] then CATALINA_HOME="/usr/share/tomcat-7" elif [ -d /opt/tomcat7 ] then CATALINA_HOME="/opt/tomcat7" elif [ -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: CCMfont_LIB_DIR is invalid \(no ccm-core*.jar file\(s\) in CCM_LIB_DIR\)." exit 1 fi if [ ! -d ${CCM_HOME_DIR}/WEB-INF ] then echo "Error: CCM_HOME_DIR path is invalid \(no WEB-INF 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` #Constructing classpath CCM_CLASSPATH="${CCM_LIB_DIR}/*:${CATALINA_LIB_DIR}/*:${CCM_RES_DIR}:${CCM_CLASS_DIR}/" #echo "DEBUG: Classpath is: $CCM_CLASSPATH" # Handling DEBUGGING request # The parameter MUST be the first! if [ "$1" = "-D" ] ; then echo "Activating debug mode, waiting for debugger to attach after CCM-Tool startup." debug="-Xdebug -Xnoagent -Djava.compiler.NONE -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=y " shift else debug="" fi #echo "DEBUG: CCM_LIB_DIR=${CCM_LIB_DIR}" #echo "DEBUG: CATALINA_LIB_DIR=${CATALINA_LIB_DIR}" #echo "DEBUG: ClassPath=$CCM_CLASSPATH" echo "executing ccm-run" java $debug -cp $CCM_CLASSPATH -Dccm.home=${CCM_HOME_DIR} "$@"