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.
98 lines
2.8 KiB
98 lines
2.8 KiB
#!/bin/sh
|
|
|
|
# Startup script for PRISM (Mac OS X)
|
|
|
|
# PRISM home directory
|
|
PRISM_DIR=/home/luser/prism
|
|
|
|
# Default value for notification after the scipt has finished (yes/no)
|
|
NOTIFY_DEFAULT=no
|
|
|
|
# Set value for notification
|
|
if [ "$NOTIFY" = "" ]; then
|
|
NOTIFY=$NOTIFY_DEFAULT
|
|
fi;
|
|
|
|
# Command to launch Java
|
|
if [ "$PRISM_JAVA" = "" ]; then
|
|
# On OS X, we want to avoiding calling java from the /usr/bin link
|
|
# since it causes problems with dynamic linking (DYLD_LIBRARY_PATH)
|
|
if [ -x /usr/libexec/java_home ]; then
|
|
PRISM_JAVA=`/usr/libexec/java_home`"/bin/java"
|
|
else
|
|
PRISM_JAVA=java
|
|
fi
|
|
fi
|
|
|
|
# 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
|
|
PRISM_JAVASTACKSIZE="-Xss4M"
|
|
|
|
# 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 [ "$DYLD_LIBRARY_PATH" = "" ]; then
|
|
DYLD_LIBRARY_PATH="$PRISM_LIB_PATH"
|
|
else
|
|
DYLD_LIBRARY_PATH="$PRISM_LIB_PATH":$DYLD_LIBRARY_PATH
|
|
fi
|
|
JAVA_LIBRARY_PATH="$PRISM_LIB_PATH"
|
|
|
|
# Export environment variables
|
|
export PRISM_DIR DYLD_LIBRARY_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
|
|
|
|
PRISM_ICON="-Xdock:icon=$PRISM_DIR/etc/icons/p64.png"
|
|
PRISM_DOCK_NAME="-Xdock:name=PRISM"
|
|
|
|
# Run PRISM through Java
|
|
"$PRISM_JAVA" -d32 $PRISM_JAVA_DEBUG $PRISM_JAVAMAXMEM $PRISM_JAVASTACKSIZE "$PRISM_ICON" "$PRISM_DOCK_NAME" -Djava.awt.headless=$PRISM_HEADLESS -Djava.library.path="$JAVA_LIBRARY_PATH" -classpath "$PRISM_CLASSPATH" $PRISM_MAINCLASS "$@"
|
|
|
|
PRISM_EXIT_CODE=$?
|
|
|
|
if [ "$NOTIFY" = "yes" ]; then
|
|
if [ -n "`which growlnotify`" ]; then
|
|
growlnotify --image $PRISM_DIR/etc/icons/prism.ico PRISM has finished -m "" > /dev/null 2> /dev/null
|
|
fi
|
|
fi;
|
|
|
|
exit $PRISM_EXIT_CODE
|