Something went wrong on our end
Forked from
JAliEn / JAliEn
581 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
compile.sh 3.44 KiB
#!/bin/bash
CURDIR="$(pwd)"
ARG="${1}"
if [ "${ARG}" == "all" -o "${ARG}" == "cs" -o "${ARG}" == "users" ]; then
shift
fi
# detect REAL location of execution even if we are a symlink and/or in a symlinked dir
if [[ -z "${JALIEN_HOME}" ]]; then
## find the location of jalien script
SOURCE="${BASH_SOURCE[0]}"
while [ -h "${SOURCE}" ]; do ## resolve $SOURCE until the file is no longer a symlink
JALIEN_HOME="$( cd -P "$(dirname "${SOURCE}" )" && pwd )" ##"
SOURCE="$(readlink "${SOURCE}")" ##"
[[ "${SOURCE}" != /* ]] && SOURCE="${JALIEN_HOME}/${SOURCE}" ## if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
JALIEN_HOME="$(cd -P "$( dirname "${SOURCE}" )" && pwd)" ##"
export JALIEN_HOME
fi
cd "${JALIEN_HOME}"
BUILDDIR="${JALIEN_HOME}/temp_build_dir"
mkdir -p ${BUILDDIR}/config &>/dev/null
CLASSPATH=.:../
JAR_LIST_LIB="";
for libjar in ${JALIEN_HOME}/lib/*.jar; do JAR_LIST_LIB="${JAR_LIST_LIB}${libjar}:" ; done;
JAR_LIST_LIB=$( echo "${JAR_LIST_LIB}" | sed 's/.$//')
export CLASSPATH="${CLASSPATH}:${JAR_LIST_LIB}"
# prepare files in build dir
cp ${JALIEN_HOME}/trusted_authorities.jks ${BUILDDIR}/
cp ${JALIEN_HOME}/config/config.properties ${JALIEN_HOME}/config/monitoring.properties ${JALIEN_HOME}/config/ce-logging.properties ${BUILDDIR}/config/
(
echo "git_hash=`git rev-parse HEAD`"
echo "git_last_tag=`git describe --tags`"
echo "build_timestamp=`date +%s`"
echo "build_date=`date`"
echo "build_hostname=`hostname -f`"
echo "build_username=`id -u -n`"
echo "build_javac=`javac -version`"
) > ${BUILDDIR}/config/version.properties
# always generate alien.jar
find ${JALIEN_HOME}/src/main -name "*.java" | xargs javac -Xlint:-options -source 11 -target 11 -O -g -d ${BUILDDIR} $* || { echo "javac of src/*.java failed" ; exit 1; }
# Clean up all previous jar generated files
rm -rf ${JALIEN_HOME}/alien.jar
# create general jar file
cd ${BUILDDIR} && jar cf ${JALIEN_HOME}/alien.jar *
generate_users () {
echo "Preparing alien-users.jar"
cd "${BUILDDIR}"
# extract all specified java classes
for dependency in ${JALIEN_HOME}/lib/{FarmMonitor.jar,apmon.jar,bcp*.jar,catalina.jar,javax.json-api-*.jar,jline-*.jar,jopt-simple-*.jar,json-simple-*.jar,lazyj.jar,servlet-api.jar,tomcat-*.jar,ca-api*.jar,java-ca-lib*.jar,annotations-api.jar,jaspic-api.jar,websocket-api.jar,jep*.jar}; do
jar xf ${dependency}
done
rm -rf META-INF
mkdir -p META-INF/services
echo "org.apache.tomcat.websocket.server.WsSci" > META-INF/services/javax.servlet.ServletContainerInitializer
# clean up of previous jar
rm -f ${JALIEN_HOME}/alien-users.jar
# create common jar files with the specified dependencies
jar cf ${JALIEN_HOME}/alien-users.jar *
}
generate_cs () {
## Now all the dependencies in a single file, for central services (+DB drivers, CA, everything else)
echo "Preparing alien-cs.jar"
cd "${BUILDDIR}"
# extract all specified java classes
for dependency in ${JALIEN_HOME}/lib/*.jar; do
jar xf ${dependency}
done
rm -rf META-INF
# clean up of previous jar
rm -f ${JALIEN_HOME}/alien-cs.jar
# create common jar files with the specified dependencies
jar cf ${JALIEN_HOME}/alien-cs.jar *
}
if [[ "${ARG}" == "all" ]]; then
generate_users
generate_cs
elif [[ "${ARG}" == "cs" ]]; then
generate_cs
elif [[ "${ARG}" == "users" ]]; then
generate_users
fi
## Cleanup
[[ -e "${BUILDDIR}" ]] && rm -rf ${BUILDDIR}
cd "${CURDIR}"