#!/bin/ksh93 BASEDIR=@CLIENT_BASEDIR@ # Honored variables: # JAVA: the java executable to use. If not set: # JAVA_HOME: directory which contains the bin/java executable to use. If not set # PATH: the environment variable, which contains the path of the java # executable to use # JAVA_OPTS: additional options to pass to the VM on start. # OWLTOOLS_MEMORY: max. memory to allow the VM to consume (e.g. 2G or 512M) # LIBDIR: the directory, which contains all the java archives (*.jar) to use # for a run. # CLASSPATH: The classpath to use in addition to the default one. FPROG="${.sh.file##*/}" SDIR="${.sh.match%/*/}" MAIN='owltools.cli.CommandLineInterface' [[ ${FPROG} == 'obo-roundtrip' ]] && MAIN='owltools.cli.Obo2Obo' if [[ -z ${LIBDIR} ]]; then if [[ -e ${BASEDIR}/share/java/owltools/lib ]]; then LIBDIR=${BASEDIR}/share/java/owltools/lib elif [[ -e ${SDIR}/lib/logback.xml ]]; then LIBDIR="${SDIR}/lib" elif [[ -d '/usr/share/java/owltools/lib' ]]; then print -u2 'owltools/lib directory not found - exiting.' exit 1 else LIBDIR='/usr/share/java/owltools/lib' fi fi if [[ -z ${JAVA} ]]; then if [[ -n ${JAVA_HOME} && -x ${JAVA_HOME}/bin/java ]]; then JAVA="${JAVA_HOME}/bin/java" else JAVA=${ whence java ; } if ! [[ -n ${JAVA} && -x ${JAVA} ]]; then print -u2 'java not found. Adjust your PATH or JAVA_HOME variable!' exit 2 fi fi fi unset JVM_OPTS ; typeset -a JVM_OPTS JVM_OPTS=( '-Xms2048M' '-DentityExpansionLimit=4086000' '-Djava.awt.headless=true' "-DlauncherDir=${LIBDIR%/*}/bin" ) if [[ -e ${SDIR}/${FPROG}.vmoptions ]]; then JVM_OPTS+=( $(<${SDIR}/${FPROG}.vmoptions) ) elif [[ -n ${OWLTOOLS_MEMORY} ]]; then JVM_OPTS+=( "-Xmx${OWLTOOLS_MEMORY}" ) else JVM_OPTS+=( '-Xmx6G' ) fi CP= M= cd ${LIBDIR} for F in ~(N)*.jar ; do [[ ${F:0:16} == 'OWLTools-Runner-' ]] && M="$F" || CP+=":$F" done [[ -n ${CLASSPATH} ]] && CP+=":${CLASSPATH}" exec ${JAVA} -cp "${LIBDIR}:${M}:${CP}" "${JVM_OPTS[@]}" ${MAIN} "$@"