#!/bin/sh
#
# @(#)jaw.sh 1.14 99/04/01 SMI
#
#  (c) Copyright 1999 Sun Microsystems, Inc.
#

PS="/usr/bin/ps"
RM="/usr/bin/rm"
AWK="/usr/bin/awk"
CAT="/usr/bin/cat"
GREP="/usr/bin/grep"
KILL="/usr/bin/kill"
SED='/usr/bin/sed'
ECHO='/usr/bin/echo'

#
# JAW_HOME ... path to Sun JDMK installation directory
#
if [ -z "${JAW_HOME}" ]; then
    JAW_HOME=/opt/SUNWconn/jaw
fi

#
# JAVA_HOME ... path to JDK installation directory
#
if [ -z "${JAVA_HOME}" ]; then
    JAVA_HOME=/usr/java1.2
fi

#
# CLASSPATH initialization
#
if [ -f "${JAW_HOME}/classes/jawall.jar" ] ; then
    JAW_CLASSPATH=${JAW_HOME}/classes/jawall.jar
else
    JAW_CLASSPATH=${JAW_HOME}/classes/jawco.jar:${JAW_HOME}/classes/jawag.jar:${JAW_HOME}/classes/jawcl.jar:${JAW_HOME}/classes/jawcs.jar:${JAW_HOME}/classes/jawtk.jar
fi
CLASSPATH=${JAW_CLASSPATH}:${CLASSPATH}

#
# Check the JAVA version
#
JAVA_VERSION=`${JAVA_HOME}/bin/java -version 2>&1`
if [ $? -ne 0 ]; then
    $ECHO ${JAVA_VERSION}
    exit 1
fi
JAVA_VERSION=`$ECHO ${JAVA_VERSION} | $SED 's/.*\"\([^"]*\)\".*/\1/'`
case ${JAVA_VERSION} in
1.2*)
    break
    ;;
*)
    $ECHO "\nError: Wrong version (${JAVA_VERSION}) of JDK, only JDK 1.2 is supported."
    exit 1
    ;;
esac

#
# Export all needed variables
#
export JAW_HOME JAVA_HOME CLASSPATH


#
# And now a little case...
#
case $1 in
'start')
    $ECHO "starting jaw\c"
    if [ -r /tmp/.jawPID ]; then
	$PS -e | $AWK '{print $1;}' | $GREP -w `$CAT /tmp/.jawPID` 1> /dev/null 2>&1
	if [ "$?" -eq 0 ] ; then
	    $ECHO "\nError: jaw is already running.\nStop it first using the command: ${JAW_HOME}/bin/jaw stop"
	    exit 1
	fi
    fi
    mode=""
    if [ "$2" = "debug" ] ; then
	mode="debug"
	shift
    fi
    option=""
    if [ "$2" != "" ] ; then
	option=$2
    fi
    if [ "$mode" = "debug" ] ; then
	${JAVA_HOME}/bin/java -DDEBUG com.sun.jaw.impl.base.Main $option &
    else
	${JAVA_HOME}/bin/java com.sun.jaw.impl.base.Main $option > /dev/null 2>&1 &
    fi
    $ECHO $! > /tmp/.jawPID
    $ECHO "."
    ;;
'stop')
    $ECHO "stopping jaw"
    if [ -r /tmp/.jawPID ] ; then
	pid=`$CAT /tmp/.jawPID`
	err=`$KILL -TERM $pid  2>&1`
	if [ $? -ne 0 ]; then
	    $ECHO "\nError: $err."
	fi
	$RM -f /tmp/.jawPID
    else
	PROC=`$PS -ef | $GREP com.sun.jaw.impl.base.Main | $GREP -v grep | $AWK '{print $2}'`
	if [ -n "$PROC" ] ; then
	    err=`$KILL -TERM $PROC 2>&1`
	    if [ $? -ne 0 ]; then
		$ECHO "\nError: $err."
	    fi
	else
	    $ECHO "\nError: jaw is not running."
	fi
    fi
    ;;
*)
    $ECHO "\nUsage: $0 { start [debug] [properties file] | stop }\n"
    ;;
esac
