#!/bin/sh

ECHO="/bin/echo"
GREP="/usr/bin/grep"
AWK="/usr/bin/awk"
SED="/usr/bin/sed"
CAT="/usr/bin/cat"

if [ -z "${JAW_HOME}" ]; then
  JAW_HOME=/opt/SUNWconn/jaw
fi
#
# Check jaw.env
#
if [ ! -r /etc/opt/SUNWconn/jaw/conf/jaw.env ] ; then
  $ECHO "/etc/opt/SUNWconn/jaw/conf/jaw.env: not found."
  exit 1
fi

. /etc/opt/SUNWconn/jaw/conf/jaw.env


mode=$1

case "$mode" in
'start'|'debug')
	$ECHO "starting jaw\c"

	if [ ! -f ${JAVA_HOME}/bin/java ]; then
	  $ECHO "\nError: cannot found ${JAVA_HOME}/bin/java"
	  $ECHO "(check JAVA_HOME in /etc/opt/SUNWconn/jaw/conf/jaw.env)"
	  exit 1
	fi

	JAVA_VERSION=`${JAVA_HOME}/bin/java -version 2>&1`
	if [ $? -ne 0 ]; then
	  $ECHO "\nError: cannot run java"
	  $ECHO "(check JAVA_HOME in /etc/opt/SUNWconn/jaw/conf/jaw.env)"
	  exit 1
	fi

	JAVA_VERSION=`$ECHO ${JAVA_VERSION} | $SED 's/.*\"\([^"]*\)\".*/\1/'`

	if [ -z "$JAVA_VERSION" ]; then
	  $ECHO "\nWarning: cannot get version of the JDK."
	fi

	case ${JAVA_VERSION} in
	1.0*)
	      $ECHO "\nError: Incorrect version (${JAVA_VERSION}) of JDK"
	      $ECHO "(change JAVA_HOME in /etc/opt/SUNWconn/jaw/conf/jaw.env for another release)"
              exit 1
	      ;;
	esac
	if [ -r /tmp/.jawPID ]; then
	  /usr/bin/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: /opt/SUNWconn/jaw/bin/jaw stop"
	    exit 1
	  fi
	fi
        if [ $mode = start ] ; then
	  ${JAVA_HOME}/bin/java com.sun.jaw.impl.base.Main > /dev/null 2>&1 &
        else
	  ${JAVA_HOME}/bin/java -DDEBUG com.sun.jaw.impl.base.Main &
        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
	  /usr/bin/rm -f /tmp/.jawPID
	else
	  PROC=`/usr/bin/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: /opt/SUNWconn/jaw/bin/jaw { start | stop }\n"
       ;;
esac
