#!/bin/sh
#
# rsyslogd	Starts rsyslogd.
#
#
# chkconfig: 2345 30 99
# description: Syslog is the facility by which many daemons use to log \
# messages to various system log files. It is a good idea to always \
# run syslog.
### BEGIN INIT INFO
# Provides: $syslog
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Enhanced system logging and kernel message trapping daemons
# Description: Rsyslog is an enhanced multi-threaded syslogd supporting,
#              among others, MySQL, syslog/tcp, RFC 3195, permitted
#              sender lists, filtering on any message part, and fine
#              grain output format control.
### END INIT INFO

WITHOUT_RC_COMPAT=1

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

SourceIfNotEmpty /etc/sysconfig/rsyslogd

PIDFILE=/var/run/rsyslogd.pid
LOCKFILE=/var/lock/subsys/rsyslogd
RETVAL=0

extrasockets()
{
    local CONF="/etc/rsyslog.d/20_extrasockets.conf"
    local STRING="Generating list of extra sockets in /etc/syslog.d/"

    echo -n "$STRING "

    echo '# Do not edit manually. This file is autogenerated.' > $CONF
    echo >> $CONF

    for LOGSOCK in $(ls -1 /etc/syslog.d/); do
        echo '$AddUnixListenSocket ' $(readlink /etc/syslog.d/$LOGSOCK) >> $CONF
    done

    RETVAL=$?
    [ $RETVAL -eq 0 ] && success "$STRING" || failure "$STRING"
    echo

    return $RETVAL
}

start()
{
    extrasockets
    start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root -- rsyslogd $RSYSLOGD_OPTIONS
    RETVAL=$?
    return $RETVAL
}

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

reload()
{
    msg_reloading rsyslog
    stop_daemon --pidfile "$PIDFILE" --expect-user root -HUP -- rsyslogd
    RETVAL=$?
    return $RETVAL
}

restart()
{
    stop
    start
}

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

exit $RETVAL
