#! /bin/sh
#
### BEGIN INIT INFO
# Provides:          saned
# Required-Start:    $syslog $local_fs $remote_fs
# Required-Stop:     $syslog $local_fs $remote_fs
# Should-Start:      dbus avahi-daemon
# Should-Stop:       dbus avahi-daemon
# Default-Start:     2 3 4 5
# Default-Stop:      1
# Short-Description: SANE network scanner server
# Description:       saned makes local scanners available over the
#                    network.
### END INIT INFO

source /lib/lsb/init-functions

setvar PATH = "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
setvar DAEMON = "/usr/sbin/saned"
setvar NAME = 'saned'
setvar DESC = ""SANE network scanner server""

test -x $DAEMON || exit 0

setvar RUN = 'no'
setvar RUN_AS_USER = 'saned'

# Get lsb functions
source /lib/lsb/init-functions

# Include saned defaults if available
if test -f /etc/default/saned  {
    source /etc/default/saned
}

if test "x$RUN" != "xyes"  {
    log_success_msg "$NAME disabled; edit /etc/default/saned"
    exit 0
}

setvar DAEMON_OPTS = ""-a $RUN_AS_USER""

set -e

case (1) {
  start {
	log_daemon_msg "Starting $DESC" $NAME
	start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
		--exec $DAEMON -- $DAEMON_OPTS
	log_end_msg $?
	}
  stop {
	log_daemon_msg "Stopping $DESC" $NAME
	start-stop-daemon --stop --oknodo --quiet --pidfile /var/run/$NAME.pid \
		--exec $DAEMON
	log_end_msg $?
	}
  force-reload {
	# check whether $DAEMON is running. If so, restart
	start-stop-daemon --stop --test --quiet --pidfile \
		/var/run/$NAME.pid --exec $DAEMON \
	&& $0 restart \
	|| exit 0
	}
  restart {
	log_daemon_msg "Restarting $DESC" $NAME
	start-stop-daemon --stop --oknodo --quiet --pidfile \
		/var/run/$NAME.pid --exec $DAEMON
	sleep 1
	start-stop-daemon --start --quiet --pidfile \
		/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
	log_end_msg $?
	}
  status {
	if test -s /var/run/$NAME.pid {
            setvar RUNNING = $(cat /var/run/$NAME.pid)
            if test -d /proc/$RUNNING {
                if test $(readlink /proc/$RUNNING/exe) = $DAEMON {
                    log_success_msg "$NAME is running"
                    exit 0
                }
            }

            # No such PID, or executables don't match
            log_failure_msg "$NAME is not running, but pidfile existed"
            rm /var/run/$NAME.pid
            exit 1
        } else {
            rm -f /var/run/$NAME.pid
            log_failure_msg "$NAME not running"
            exit 1
        }
	}
  * {
	setvar N = "/etc/init.d/$NAME"
	log_failure_msg "Usage: $N {start|stop|restart|force-reload}"
	exit 1
	}
}

exit 0