libreccm-legacy/ccm-core/bin/ccm-hostinit

91 lines
3.1 KiB
Bash

#!/bin/bash
# This script is a wrapper for calling the ANT with hostint tasks.
# The ANT hostinit tasks replace some functions of the hostinit
# ccm command (ccm hostinit .....), implemented by
# com/arsdigita/packaging/Hostinit.java class
# Specifically it copies addon packages into an existing aplaws
# installation and checks for prerequisites and consistency condition.
# 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 CCM_REPO environment variable to access the source dir.
if [[ -z "$CCM_REPO" ]] ; then
echo CCM_REPO not set. Guessing ...
# If we are running Aplaws Appl Edition it is in base dir.
if [ -d ../../../../ccm-addons ]
then
#Convert to absolute path:
CCM_REPO=`cd ../../../../ccm-addons; pwd`
echo ===================================================
echo Using CCM_REPO = $CCM_REPO
echo If this doesn\'t work use
echo " export CCM_REPO=/path/to/repo "
echo to point us to the correct location and run
echo ccm-hostinit again or execute
echo " CCM_REPO=/path/to/repo ccm-hostinit [task] "
echo again
echo ===================================================
echo
else
echo
echo ===================================================
echo Environment variable CCM_REPO not set. We need
echo to know the location of the source repo directory.
echo So use
echo " export CCM_REPO=/path/to/repo "
echo to point us to the correct location and run
echo ccm-hostinit again or execute
echo " CCM_REPO=/path/to/repo sh ccm-hostinit [task] "
echo again
echo ===================================================
echo
exit 1
fi
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}/WEB-INF ]
then
echo "Error: CCM_HOME_DIR path is invalid \(no WEB-INF directory in CCM_HOME_DIR\)."
exit 1
fi
#Convert to absolute path:
CCM_HOME=`cd ${CCM_HOME_DIR}; pwd`
ANT_HOME_DIR="./libexec/ant"
ANT_HOME=`cd ${ANT_HOME_DIR}; pwd`
export ANT_HOME
TASK="$1"
shift
if [ "$1" = "--packagefile" ]
then
# Absolute path of current dir
MY_DIR=`pwd`
# Construct absolute (canonical) filename
FILENAME=${MY_DIR}/$2
exec libexec/ant/bin/ant ${TASK} -quiet -f libexec/build.xml -Dccm.home.dir=${CCM_HOME} -Dccm.repo.dir=${CCM_REPO} -Dccm.packages.filename="${FILENAME}"
else
PACKAGES="$@"
exec libexec/ant/bin/ant ${TASK} -quiet -f libexec/build.xml -Dccm.home.dir=${CCM_HOME} -Dccm.repo.dir=${CCM_REPO} -Dccm.packages="${PACKAGES}"
fi