#!/bin/sh #+ # Name: # stilts # Purpose: # Invokes the STILTS application on unix. # Description: # This shell script invokes the STILTS application. # 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, or prefixed with -J) will # be sent to java, and the others will be sent to the application # Requisites: # - java should be on the path. # # - relative to the directory in which this script is installed, # one of the following jar files should exist and contain the # STILTS classes: # ./stilts.jar # ../../lib/ttools/stilts-app.jar # ./stilts-app.jar # ./topcat-extra.jar # ./topcat-full.jar # ./topcat-lite.jar # Authors: # MBT: Mark Taylor (Starlink) #- # Find where this script is located. scriptname="$0" while [ -L "$scriptname" ] do scriptname=`readlink "$scriptname" 2>/dev/null` done test -n "$scriptname" || scriptname=$0 bindir="`dirname \"$scriptname\"`" # Set locations of acceptable jar files (relative to this script). bindir_stilts_jars="\ stilts.jar\ ../lib/ttools/stilts-app.jar\ stilts-app.jar\ topcat-extra.jar\ topcat-full.jar\ topcat-lite.jar\ " # Set default java command. java=java # If we appear to have been installed using the topcat application bundle DMG, # use the bundled JRE. mac_bundled_java="$bindir/../jre.bundle/Contents/Home/bin/java" test -x "$mac_bundled_java" && java="$mac_bundled_java" # Locate the application jar file. for j in $bindir_stilts_jars; do if test -z "$appjar" -a -f "$bindir/$j"; then appjar="$bindir/$j" fi done if test ! -f "$appjar" then echo 1>&2 "Can't find stilts classes relative to ${scriptname} - looked for:" for j in $bindir_stilts_jars do echo " $bindir/$j" done exit 1 fi # Pull out any arguments which look to be destined for the java binary. javaArgs="" while test "$1" do if echo $1 | grep -- '^-[XD]' >/dev/null; then javaArgs="$javaArgs $1" shift elif echo $1 | grep -- '^-J' >/dev/null; then javaArgs="$javaArgs `echo $1 | sed s/^-J//`" 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" \ uk.ac.starlink.ttools.Stilts \ "$@"