diff options
Diffstat (limited to 'vo/java/voclientd')
-rwxr-xr-x | vo/java/voclientd | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/vo/java/voclientd b/vo/java/voclientd new file mode 100755 index 00000000..1e250338 --- /dev/null +++ b/vo/java/voclientd @@ -0,0 +1,117 @@ +#!/bin/sh + +#+ +# Name: +# voclientd +# +# Purpose: +# +# Description: +# This shell script invokes the VOClient daemon. +# It's not very complicated, but performs some argument manipulation +# prior to invoking java with the right classpath and classname. +# +# 1. If a class path is specified using either the CLASSPATH +# environment variable or the -classpath flag to this script, +# it will be added to the application classpath. +# +# 2. Any initial command-line arguments which look like they are destined +# for java itself (starting with -D or -X) will be sent to java, +# and the others will be sent to the application. + +# Requisites: +# - java should be on the path. +# +# - the application jar file should exist in the same directory as this +# command. +# +# Credits: +# Based on the STILTS startup script by Mark Taylor (Starlink) +# Original version - Michael Fitzpatrick, NOAO, June 2006 +# VOClient integration - DCT 2006-July-10 +# Modified for NVOSS bin,java/lib install - DCT August 2006 +# Modified for VO-CLI distro - Michael Fitzpatrick, NOAO, January 2008 +# Generalized for VO-CLI distro - Michael Fitzpatrick, NOAO, January 2009 +#- + + +# The following jar files come from the NVOSS Software distribution but are +# included with the VO-CLI distribution as well. They are needed to support +# the voclientd interface and are assumed to be in a directory called +# 'voclient.jars' in the same directory as the 'voclientd' command (this +# script). + + + +# Determine the BIN and LIB directories. +if test -n "$VOCLI_HOME" -a -f "$VOCLI_HOME/voclientd"; then + appjar="$VOCLI_HOME/voclient.jar" + +else + + # Find where this script is located. + bindir="`dirname $0`" + appjar="$bindir/voclient.jar" + + + # Make sure it looks reasonable. + if test ! -f "${appjar}" + then + echo 1>&2 "Can't find VOClient daemon classes in ${jardir}" + exit 1 + fi + + + # Locate the application jar file. + for j in $voc_jars; do + if test -z "$appjar" -a -f "$bindir/$j"; then + appjar="$bindir/$j" + jardir="$bindir/voclient.jars/" + fi + done + + + # Add the VOClient jar to the beginning of the CLASSPATH. + if test -f "${appjar}"; then + CLASSPATH="${appjar}:${CLASSPATH}" + fi +fi + + +# Pull out any arguments which look to be destined for the java binary. +javaArgs="-Xmx1024m" +while test "$1" +do + if echo $1 | grep -- '^-[XD]' >/dev/null; then + javaArgs="$javaArgs $1" + shift + elif [ "$1" = "-classpath" -a -n "$2" ]; then + shift + export CLASSPATH="$1" + shift + else + break + fi +done + +# Check for Cygwin and transform paths. +case "`uname`" in + CYGWIN*) + if test -n "$CLASSPATH"; then + CLASSPATH=`cygpath --path --windows "${appjar}:$CLASSPATH"` + else + CLASSPATH=`cygpath --windows "${appjar}"` + fi + ;; + *) + CLASSPATH="${appjar}:${CLASSPATH}" + ;; +esac + +# Execute the command. +java \ + $javaArgs \ + -classpath $CLASSPATH \ + voclient.VOClientd \ + "$@" + |