#!/bin/bash
#
# Startup script for the Jonas Application Server
#
# chkconfig: - 80 20
# description: Jonas is ObjectWeb's J2EE framework.

# Source function library.
. /etc/rc.d/init.d/functions

NAME=`basename $0`
unset ISBOOT
if [ ${NAME:0:1} = "S" -o ${NAME:0:1} = "K" ]
then
        NAME=${NAME:3}
        ISBOOT=1
fi

# Set the defaults.
LOGFILE=/var/log/jonas/${NAME}
JONAS_ROOT=/usr/share/jonas
unset JONAS_BASE
unset JONAS_NAME

export JONAS_ROOT
unset CATALINA_HOME ANT_HOME

# Source configuration.
[ -f /etc/java/java.conf ] && . /etc/java/java.conf
[ -f /etc/sysconfig/${NAME} ] && . /etc/sysconfig/${NAME}

# Set the name option
NAME_OPT=
if [ ! -z "$JONAS_NAME" ]
then
    NAME_OPT="-n $JONAS_NAME"
fi


RETVAL=0

start() {
    local tmpdir cmd newcmd nice

    echo -n $"Starting ${NAME}: "

    ulimit -S -c 0 >/dev/null 2>&1

    # If they set NICELEVEL in /etc/sysconfig/${NAME}, honor it
    [ -n "$NICELEVEL" ] && nice="nice -n $NICELEVEL"

    [ "${BOOTUP:-}" = "verbose" -a -z "$LSB" ] && echo -n " ${NAME}"

    if [ -z $JONAS_BASE ]; then
      echo "init script JONAS_BASE is not set" >> $LOGFILE
      $nice su jonas -s /bin/sh -c "/usr/bin/jonas start $NAME_OPT" >> $LOGFILE 2>&1
    else
      echo "init script JONAS_BASE=$JONAS_BASE" >> $LOGFILE
      $nice su jonas -s /bin/sh -c "export JONAS_BASE=$JONAS_BASE;/usr/bin/jonas start $NAME_OPT" >> $LOGFILE 2>&1
    fi
    RETVAL=$?

    if [ $RETVAL -eq 0 ]; then
        success $"${NAME} startup"
    else
        failure $"${NAME} startup"
    fi

    echo
    return $RETVAL
}

stop() {
    echo -n $"Stopping ${NAME}: "

    su jonas -s /bin/sh -c "/usr/bin/jonas stop $NAME_OPT" >> $LOGFILE 2>&1
    RETVAL=$?

    if [ $RETVAL -eq 0 ]; then
        success $"${NAME} shutdown"
    else
        failure $"${NAME} shutdown"
    fi

    echo
    return $RETVAL
}

# See how we were called.
case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart|reload)
	stop
	start
	;;
  *)
	echo $"Usage: ${NAME} {start|stop|restart|reload}"
	exit 1
esac

exit $RETVAL
