#!/bin/sh
#
# smsd      SMS server tools for GSM modems
#
# chkconfig: - 90 10
# description:  SMS Gateway software which can send and receive \
#       short messages through GSM modems and mobile phones
# processname: smsd
# config: /etc/smsd.conf
# pidfile: /var/run/smsd/smsd.pid

### BEGIN INIT INFO
# Provides: $smsd
# Required-Start: $local_fs $syslog
# Required-Stop: $local_fs $syslog
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: start|stop|status|restart|reload smsd
# Description: SMS server tools for GSM modems
### END INIT INFO

# Do not load RH compatibility interface.
WITHOUT_RC_COMPAT=1

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

USER=smsd
GROUP=smsd
PIDDIR="/var/run/$USER"
PIDFILE="$PIDDIR/$USER.pid"
INFOFILE="$PIDDIR/$USER.working"
LOCKFILE="/var/lock/subsys/$USER"

RETVAL=0

start()
{
    if [ ! -d "$PIDDIR" ]; then
    mkdir -p "$PIDDIR";
        chown root:"$USER" "$PIDDIR"
        chmod 775 "$PIDDIR"
    fi
    # Delete lock files
    find /var/spool/sms -name '*.LOCK' -delete

    start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user "$USER" -- \
        smsd -p$PIDFILE -i$INFOFILE -u$USER -g$GROUP
    RETVAL=$?
    return $RETVAL
}

stop()
{
    stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user "$USER" -- smsd
    RETVAL=$?
    return $RETVAL
}

restart()
{
    stop
    start
}

reload()
{
    msg_reloading smsd
    stop_daemon --pidfile "$PIDFILE" --expect-user "$USER" -HUP -- smsd
    RETVAL=$?
    return $RETVAL
} 

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

exit $RETVAL
