#!/bin/sh
#
# psion        Starts ncpd/plpnfsd.
#
# chkconfig: 2345 45 10
# description: This facility enables connectivity to a Psion series 5.

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

NCPD=/usr/sbin/ncpd
PLPNFSD=/usr/sbin/plpnfsd
PLPPRINTD=/usr/sbin/plpprintd
PSIONCFG=/etc/sysconfig/psion

[ -f "$NCPD" ] || exit 0
[ -f "$PLPNFSD" ] || exit 0
[ -f "$PLPPRINTD" ] || exit 0
[ -f "$PSIONCFG" ] || exit 0

. $PSIONCFG

LOCKFILE='/var/lock/subsys/psion'
LOCKFILE_NCPD='/var/lock/subsys/ncpd'
LOCKFILE_PLPNFSD='/var/lock/subsys/plpnfsd'
LOCKFILE_PLPPRINTD='/var/lock/subsys/plpprintd'
RETVAL=0

start() {
	echo "Starting Psion support ..."
	RETVAL=0
	if test "$START_NCPD" = "yes" ; then
		echo -n "  ncpd: "
		start_daemon --lockfile "$LOCKFILE_NCPD" --user root -- $NCPD $NCPD_ARGS
		RETVAL=$?
		echo
	fi
	if [ $RETVAL -eq 0 ] ; then
		if test "$START_PLPNFSD" = "yes" ; then
			echo -n "  plpnfsd: "
			start_daemon --lockfile "$LOCKFILE_PLPNFSD" -- $PLPNFSD $PLPNFSD_ARGS
			RETVAL=$?
			echo
		fi
		if test "$START_PLPPRINTD" = "yes" ; then
			echo -n "  plpprintd: "
			start_daemon --lockfile "$LOCKFILE_PLPPRINTD" -- $PLPPRINTD $PLPPRINTD_ARGS
			RETVAL=$?
			echo
		fi
	fi
	[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
	return $RETVAL
}

stop() {
	echo "Stopping Psion support ..."
	RETVAL=0
	if test "$START_PLPNFSD" = "yes" ; then
		echo -n "  plpnfsd: "
		stop_daemon --lockfile "$LOCKFILE_PLPNFSD" -HUP -- plpnfsd
                WAIT=5
                while test $WAIT -gt 0 ; do
                        test -z "`pidof -x plpnfsd`" && break
                        sleep 1 # allow plpnfsd flushing it's cache
                        WAIT=`expr $WAIT - 1`
                done
                test -z "`pidof -x plpnfsd`" || stop_daemon --lockfile "$LOCKFILE_PLPNFSD" -- plpnfsd
		echo
	fi
	if test "$START_PLPPRINTD" = "yes" ; then
		echo -n "  plpprintd: "
		stop_daemon --lockfile "$LOCKFILE_PLPPRINTD" -- plpprintd
		echo
	fi
	if test "$START_NCPD" = "yes" ; then
		echo -n "  ncpd: "
		stop_daemon --lockfile "$LOCKFILE_NCPD" -- ncpd
		echo
	fi
	RETVAL=$?
	[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
	return $RETVAL
}

restart() {
	stop
	start
}

reload()
{
	msg_reloading plptools
	stop_daemon --lockfile "$LOCKFILE_PLPNFSD" -HUP -- plpnfsd	
}

# See how we were called.
case "$1" in
  start)
  	start
	;;
  stop)
  	stop
	;;
  status)
	status ncpd
	status plpnfsd
	status plpprintd
	;;
  restart|reload)
  	restart
	;;
  condrestart)
  	test -f /var/lock/subsys/psion && restart || :
	;;
  *)
	echo "Usage: psion {start|stop|status|restart|reload|condrestart}"
	exit 1
esac

exit $?

