#!/bin/sh
#
# chkconfig: - 85 15
# description: Fess init script
# processname: fess
# pidfile: /var/run/fess.pid
#

# Source function library.
if [ -x /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
fi

# Source networking configuration.
if [ -x /etc/sysconfig/network ]; then
. /etc/sysconfig/network
fi

# Check that networking is up.
[ "x${NETWORKING}" = "xno" ] && exit 0

# Set Fess environment.
export JAVA_HOME=/usr/java/default/
export CATALINA_HOME=/opt/fess
export CATALINA_OPTS=
export PATH=$JAVA_HOME/bin:$PATH

SLEEP_INTERVAL=10

[ -f $CATALINA_HOME/bin/startup.sh ] || exit 0
[ -f $CATALINA_HOME/bin/shutdown.sh ] || exit 0

export PATH=$PATH:/usr/bin:/usr/local/bin

# Fess name
FESS_PROG=fess
LOCK_FILE=/var/lock/subsys/$FESS_PROG
PID_FILE=/var/run/${FESS_PROG}.pid

# if FESS_USER is not set, use fess user
if [ -z "$FESS_USER" ]; then
    FESS_USER="fess"
fi

RETVAL=0

# See how we were called.
start() {
    # Start daemon.
    echo -n "Starting $FESS_PROG: "

    chown -R $FESS_USER $CATALINA_HOME/logs
    chown -R $FESS_USER $CATALINA_HOME/work
    chown -R $FESS_USER $CATALINA_HOME/temp
    chown -R $FESS_USER $CATALINA_HOME/webapps

    if [ -x /etc/rc.d/init.d/functions ]; then
        daemon --user $FESS_USER $CATALINA_HOME/bin/startup.sh
    else
        su - $FESS_USER -c "$CATALINA_HOME/bin/startup.sh"
    fi

    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && touch $LOCK_FILE
    return $RETVAL
}

stop() {
    echo -n "Stopping $FESS_PROG: "

    if [ -x /etc/rc.d/init.d/functions ]; then
        daemon --user $FESS_USER $CATALINA_HOME/bin/shutdown.sh
    else
        su - $FESS_USER -c "$CATALINA_HOME/bin/shutdown.sh"
    fi

    count=0
    while [ $count -lt $SLEEP_INTERVAL ] ; do
        count=`expr $count + 1`
        sleep 1;
    done

    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f $LOCK_FILE $PID_FILE
}

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

exit 0
