#!/bin/sh
#
# lpd           This shell script takes care of starting and stopping \
#               lpd (printer daemon).
#
# chkconfig: 2345 60 60
# description: lpd is the print daemon required for lpr to work properly. \
#       It is basically a server that arbitrates print jobs to printer(s).
# processname: /usr/sbin/lpd
# config: /etc/printcap

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

# Source networking configuration and check that networking is up.
if [ -f /etc/sysconfig/network ] ; then
	. /etc/sysconfig/network
	[ ${NETWORKING} = "no" ] && exit 0
fi

[ -x /usr/sbin/lpd ] || exit 0

prog=lpd

RETVAL=0

config () {
    # Is this a printconf system?
    if [[ -x /usr/sbin/printconf-backend ]]; then
	    # run printconf-backend to rebuild printcap and spools
	    if ! /usr/sbin/printconf-backend ; then
		# If the backend fails, we dont start no printers defined
		echo -n $"No Printers Defined"
		echo_success
		echo
	        return 1
	    fi
    fi
    return 0
}

start () {
    echo -n $"Starting $prog: "

    if ! config; then
	return 0
    fi

    if ! [ -e /etc/printcap ] ; then
	echo_failure
	echo
	return 1
    fi
    # run checkpc to fix whatever lpd would complain about
    /usr/sbin/checkpc -f
    # start daemon
    daemon /usr/sbin/lpd
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && touch /var/lock/subsys/lpd
    return $RETVAL
}

stop () {
    # stop daemon
    echo -n $"Stopping $prog: "
    killproc /usr/sbin/lpd
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f /var/lock/subsys/lpd
    return $RETVAL
}

restart () {
    stop
    start
    RETVAL=$?
    return $RETVAL
}

# See how we were called.
case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    status)
	status /usr/sbin/lpd
	RETVAL=$?
	;;
    restart)
	restart
	;;
    condrestart)
	# only restart if it is already running
	[ -f /var/lock/subsys/lpd ] && restart || :
	;;
    reload)
	echo -n $"Reloading $prog: "
	if config; then
	    killproc /usr/sbin/lpd -HUP
	    RETVAL=$?
	else
	    RETVAL=1
	fi
	echo
	;;
    *)
        echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
        RETVAL=1
esac

exit $RETVAL
