#! /bin/sh
#
# jabber-pyicqt ICQ transport for jabber servers.
#
# chkconfig:    - 90 10
# description:  PyICQ-t transport is a external component for a Jabber server \
#               which allows to aggregate ICQ contacts into jabber
# processname:  python
# config:       /etc/pyicqt.xml
# pidfile:      /var/lib/pyicqt/pid

WITHOUT_RC_COMPAT=1

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

SourceIfNotEmpty /etc/sysconfig/network && [ "$NETWORKING" != no ] || exit
SourceIfNotEmpty /etc/sysconfig/pyicqt

PYTHON=/usr/bin/python
EXE=/usr/lib64/pyicqt/PyICQt.py
CONF=/etc/pyicqt.xml
PIDFILE=/var/run/pyicqt/pid
LOGFILE=/var/log/pyicqt/log
LOCKFILE=/var/lock/subsys/pyicqt
RETVAL=0

start()
{
    if start-stop-daemon --start --test --quiet --pidfile "$PIDFILE" \
	--user _pyicqt --exec "$PYTHON" >/dev/null; then
	action "Starting ICQ component:" \
	    start-stop-daemon --start --pidfile "$PIDFILE" --chuid _pyicqt --exec "$PYTHON" \
	    -- "$EXE" -b -c "$CONF" -l "$LOGFILE" ${EXTRAOPTIONS:--t}
    else
	msg_already_running pyicqt
	passed "pyicqt startup"
	echo
    fi
    RETVAL=$?
    [ "$RETVAL" -ne 0 ] || touch "$LOCKFILE"
    return $RETVAL
}

stop()
{
    action "Stopping ICQ component:" \
	start-stop-daemon --stop --pidfile "$PIDFILE" --user _pyicqt --exec "$PYTHON"
    RETVAL=$?
    [ "$RETVAL" -ne 0 ] || rm -f -- "$LOCKFILE"
    return $RETVAL
}

restart()
{
    stop
    start
}

# See how we were called.
case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart|reload)
    restart
    ;;
    condstop)
    if [ -e "$LOCKFILE" ]; then
	stop
    fi
    ;;
    condrestart|condreload)
    if [ -e "$LOCKFILE" ]; then
	restart
    fi
    ;;
    status)
    status --pidfile "$PIDFILE" --expect-user _pyicqt --displayname pyicqt python
    RETVAL=$?
    ;;
    *)
    msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|status}"
    RETVAL=1
esac

exit $RETVAL
