#!/usr/bin/qsh
# // THIS PRODUCT CONTAINS RESTRICTED MATERIALS OF IBM
# // 5724-I63, 5724-H88, 5655-N01, 5733-W61 (C) COPYRIGHT International Business Machines Corp., 1997, 2006
# // All Rights Reserved * Licensed Materials - Property of IBM
# // US Government Users Restricted Rights - Use, duplication or disclosure
# // restricted by GSA ADP Schedule Contract with IBM Corp.
#
# //  DESCRIPTION:
# //      Script file used to stop an application server

. $(/usr/bin/dirname $0)/setupCmdLine

# Issue error message if we are unable to determine valid profile
CMD_NAME=`basename $0`

if [ "${INV_PRF_SPECIFIED:=}" != "" ] && [ "$INV_PRF_SPECIFIED" = "true" ]
then
    ${JAVA_HOME}/bin/java -cp "${WAS_HOME}/lib/commandlineutils.jar" com.ibm.ws.install.commandline.utils.CommandLineUtils -specifiedProfileNotExists -profileName $WAS_PROFILE_NAME
    exit 1
elif [ "${WAS_USER_SCRIPT_FILE_NOT_EXISTS:=}" != "" ] && [ "$WAS_USER_SCRIPT_FILE_NOT_EXISTS" = "true" ]
then
    ${JAVA_HOME}/bin/java -cp "${WAS_HOME}/lib/commandlineutils.jar" com.ibm.ws.install.commandline.utils.CommandLineUtils -wasUserScriptFileNotExists -wasUserScript $WAS_USER_SCRIPT
    exit 1
elif [ "${NO_DFT_PRF_EXISTS:=}" != "" ] && [ "$NO_DFT_PRF_EXISTS" = "true" ]
then
    ${JAVA_HOME}/bin/java -cp "${WAS_HOME}/lib/commandlineutils.jar" com.ibm.ws.install.commandline.utils.CommandLineUtils -noDefaultProfile -commandName $CMD_NAME
    exit 1
fi

if [ -z "$JAASSOAP" ]; then
  JAASSOAP="-Djaassoap=off"
fi

SERVER=
REQHELP=false
NOWAIT=false
# Check if help was asked for
for i in $@ ; do
  if [ "$i" = "-help" ] || [ "$i" = "-?" ]; then
    REQHELP=true
  else
    if [ "$i" = "-nowait" ]; then
      NOWAIT=true
    fi
  fi
done

SERVERTOUSE=${SERVER}

# Check if server name was specified
if [ $# -ge 1 ]; then
  case $1 in
    -instance) if [ $# -ge 3 ]; then
                 case $3 in
                   -*) : ;;
                    *) SERVER=$3
                 esac
               fi
               ;;
    -profileName) if [ $# -ge 3 ]; then
                 case $3 in
                   -*) : ;;
                    *) SERVER=$3
                 esac
               fi
               ;;
           -*) : ;;
            *) SERVER=$1
  esac
fi

# server was not specified, default it
if [ -z "${SERVER}" ]; then
  if [ "${WAS_OS400_INSTANCE}" = "default" ]; then
    SERVER=server1
    SERVERTOUSE=${SERVER}
  elif [ "${WAS_OS400_INSTANCE}" = "SecureProxySrv01" ]; then
    SERVER=proxy1
    SERVERTOUSE=${SERVER}
  else
    SERVER=${WAS_OS400_INSTANCE}
    SERVERTOUSE=${SERVER}
  fi
else
  # server was specified, it is already in $@
  SERVER=
fi

PIDEXISTS=false
JOBID=
# Check if .pid file exists and Server Job is already running
if [ -e $USER_INSTALL_ROOT/logs/${SERVERTOUSE}/${SERVERTOUSE}.pid ]; then
  PIDEXISTS=true
  JOB_ID=`cat $USER_INSTALL_ROOT/logs/${SERVERTOUSE}/${SERVERTOUSE}.pid`
fi

${JAVA_HOME}/bin/java ${JAVA_PARM} \
  -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager \
  -Djava.util.logging.configureByServer=true \
  ${JAASSOAP} \
  com.ibm.ws.bootstrap.WSLauncher \
  com.ibm.ws.management.tools.WsServerStop \
    ${CONFIG_ROOT} ${WAS_CELL} ${WAS_NODE} ${SERVER} "$@"

RETCODE=$?

if [ "${PIDEXISTS}" = "true" ] && [ "${REQHELP}" = "false" ] && [ "${NOWAIT}" = "false" ] && [ "${RETCODE}" = "0" ]; then
   system -q "DSPJOBLOG ( ${JOB_ID} )" > /dev/null  
   while [[ $? -eq 0 ]] ; do
      sleep 2
       system -q "DSPJOBLOG ( ${JOB_ID} )" > /dev/null  
  done
fi

exit $RETCODE
