#! /bin/bash
#
# Startup/shutdown script for HPLIP 
#
# Note, this script file must start before cupsd.
#
# For chkconfig the HPLIP priority (ie: 50) must be less the cupsd 
# priority (ie: 55).
#
# For LSB install_initd the cups script file should have "hplip" in the
# Should-Start field.
# 
#   chkconfig: 2345 50 10
#   description: Start/stop script for HP Linux Imaging and Printing (HPLIP).
#
# (c) 2004 Copyright Hewlett-Packard Development Company, LP
#
# This sript adopted by Serge Volkov for ALT Linux Sisyphus
#
### BEGIN INIT INFO
# Provides: hplip
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 
# Description: Start/stop script for HP Linux Imaging and Printing (HPLIP)
### END INIT INFO

# Do not load RH compatibility interface.
WITHOUT_RC_COMPAT=1

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

HPIOD_PIDFILE=/var/run/hpiod.pid
HPSSD_PIDFILE=/var/run/hpssd.pid
HPLIP_PORTFILE=/var/run/hpiod.port
HPSSD_PORTFILE=/var/run/hpssd.port
HPIOD_LOCKFILE=/var/lock/subsys/hpiod
HPSSD_LOCKFILE=/var/lock/subsys/hpssd
HPIOD=/usr/sbin/hpiod
HPSSD=/usr/share/hplip/hpssd.py
HPIODDIR=/usr/sbin
HPSSDDIR=/usr/share/hplip
PYTHON=/usr/bin/python
RETVAL=0

start()
{
	start_daemon --pidfile "$HPIOD_PIDFILE" --lockfile "$HPIOD_LOCKFILE" --expect-user root -- $HPIOD
	start_daemon --pidfile "$HPSSD_PIDFILE" --lockfile "$HPSSD_LOCKFILE" --expect-user root -- $HPSSD
	RETVAL=$?
	return $RETVAL
}

stop()
{
	stop_daemon --pidfile "$HPIOD_PIDFILE" --lockfile "$HPIOD_LOCKFILE" --expect-user root -- $HPIOD
	stop_daemon --pidfile "$HPSSD_PIDFILE" --lockfile "$HPSSD_LOCKFILE" --expect-user root -- $PYTHON
    RETVAL=$?
	[ $RETVAL -eq 0 ] && ( rm -vf $HPSSD_PORTFILE && rm -vf $HPIOD_PORTFILE )
    return $RETVAL
}

restart()
{
        stop
        start
}

reload()
{
        msg_reloading HPIOD
       	stop_daemon --pidfile "$HPIOD_PIDFILE" --expect-user root -HUP -- $HPIOD
		msg_reloading HPIOD
        stop_daemon --pidfile "$HPSSD_PIDFILE" --expect-user root -HUP -- $HPSSD
        RETVAL=$?
        return $RETVAL
}

# See how we were called.
case "$1" in
	start)
		start
		;;
        stop)
                stop
                ;;
        reload)
                reload
                ;;
        restart)
                restart
                ;;
        condstop)
                if [ -e "$HPIOD_LOCKFILE" ] && [ -e "$HPSSD_LOCKFILE" ]; then
			stop
                fi
                ;;
        condrestart)
                if [ -e "$HPIOD_LOCKFILE" ] && [ -e "$HPSSD_LOCKFILE" ]; then
                        restart
                fi
                ;;
        condreload)
                if [ -e "$HPIOD_LOCKFILE" ] && [ -e "$HPSSD_LOCKFILE" ]; then
                        reload
                fi
                ;;
        status)
                status --pidfile "$HPIOD_PIDFILE" --expect-user root -- $HPIOD
        		status --pidfile "$HPSSD_PIDFILE" --expect-user root -- $PYTHON
                RETVAL=$?
                ;;
        *)
                msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|status}"
                RETVAL=1
esac
exit $RETVAL
