You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

111 lines
3.2 KiB

#!/bin/sh
# Startup script for PRISM (Linux/Solaris)
# PRISM home directory
PRISM_DIR=/home/luser/prism
# Command to launch Java
if [ "$PRISM_JAVA" = "" ]; then
PRISM_JAVA=java
fi
#### Java heap size handling (either via -javamaxmem argument or PRISM_JAVAMAXMEM environment variable)
# If there is a -javamaxmem switch, use it for PRISM_JAVAMAXMEM
ARGS=( "$@" )
for ((i=0;i<${#ARGS[@]};i+=1)); do
if [ "${ARGS[$i]}" = "-javamaxmem" ]; then
PRISM_JAVAMAXMEM=${ARGS[$i+1]}
PRISM_JAVAMAXMEM=`echo "$PRISM_JAVAMAXMEM" | awk /^[0-9]+[kmg]?$/`
if [ "$PRISM_JAVAMAXMEM" = "" ]; then
echo; echo "Error: Invalid value for -javamaxmem switch."; exit
fi
fi
done
# Max memory for Java
if [ "$PRISM_JAVAMAXMEM" != "" ]; then
PRISM_JAVAMAXMEM=`echo "$PRISM_JAVAMAXMEM" | awk /^[0-9]+[kmg]?$/`
if [ "$PRISM_JAVAMAXMEM" = "" ]; then
echo; echo "Error: Environment variable PRISM_JAVAMAXMEM is invalid."; exit
fi
PRISM_JAVAMAXMEM="-Xmx$PRISM_JAVAMAXMEM"
else
# default
PRISM_JAVAMAXMEM="-Xmx1g"
fi
#### Java stack size handling (either via -javastack argument or PRISM_JAVASTACKSIZE environment variable)
# If there is a -javastack switch, use it for PRISM_JAVASTACKSIZE
for ((i=0;i<${#ARGS[@]};i+=1)); do
if [ "${ARGS[$i]}" = "-javastack" ]; then
PRISM_JAVASTACKSIZE=${ARGS[$i+1]}
PRISM_JAVASTACKSIZE=`echo "$PRISM_JAVASTACKSIZE" | awk /^[0-9]+[kmg]?$/`
if [ "$PRISM_JAVASTACKSIZE" = "" ]; then
echo; echo "Error: Invalid value for -javastack switch."; exit
fi
fi
done
# Stack size for Java
if [ "$PRISM_JAVASTACKSIZE" != "" ]; then
PRISM_JAVASTACKSIZE=`echo "$PRISM_JAVASTACKSIZE" | awk /^[0-9]+[kmg]?$/`
if [ "$PRISM_JAVASTACKSIZE" = "" ]; then
echo; echo "Error: Environment variable PRISM_JAVASTACKSIZE is invalid."; exit
fi
PRISM_JAVASTACKSIZE="-Xss$PRISM_JAVASTACKSIZE"
else
# default (4 MB)
PRISM_JAVASTACKSIZE="-Xss4m"
fi
####
# Set up CLASSPATH:
# - PRISM jar file (for binary versions) (gets priority)
# - classes directory (most PRISM classes)
# - top-level directory (for images, dtds)
# - lib/pepa.zip (PEPA stuff)
# - lib/*.jar (all other jars)
PRISM_CLASSPATH="$PRISM_DIR"/lib/prism.jar:"$PRISM_DIR"/classes:"$PRISM_DIR":"$PRISM_DIR"/lib/pepa.zip:"$PRISM_DIR"/lib/*
# Set up pointers to libraries
PRISM_LIB_PATH="$PRISM_DIR"/lib
# Copy library path to relevant vars
if [ "$PATH" = "" ]; then
PATH="$PRISM_LIB_PATH"
else
PATH="$PRISM_LIB_PATH":$PATH
fi
JAVA_LIBRARY_PATH="$PRISM_LIB_PATH"
# Export environment variables
export PRISM_DIR PATH
# Main Java class to launch
if [ "$PRISM_MAINCLASS" = "" ]; then
PRISM_MAINCLASS=prism.PrismCL
fi
# Do we run headless? (GUI overrides this)
if [ "$PRISM_HEADLESS" = "" ]; then
PRISM_HEADLESS=true
fi
# Convert paths to Windows form
PRISM_CLASSPATH_WIN=`cygpath -wp $"$PRISM_CLASSPATH"`
JAVA_LIBRARY_PATH_WIN=`cygpath -wp "$JAVA_LIBRARY_PATH"`
# If debugging enabled, set up vars accordingly
if [ "$PRISM_DEBUG" != "" ]; then
PRISM_JAVA_ARG1="$PRISM_JAVA"
PRISM_JAVA_ARG2="$PRISM_DEBUG_ARG"
PRISM_JAVA="$PRISM_DEBUG"
fi
# Run PRISM through Java
"$PRISM_JAVA" $PRISM_JAVA_ARG1 $PRISM_JAVA_ARG2 $PRISM_JAVA_DEBUG $PRISM_JAVAMAXMEM $PRISM_JAVASTACKSIZE -Djava.awt.headless=$PRISM_HEADLESS -Djava.library.path="$JAVA_LIBRARY_PATH_WIN" -classpath "$PRISM_CLASSPATH_WIN" $PRISM_MAINCLASS "$@"