#!/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

[ -f @prefix@/sbin/ncpd ] || exit 0
[ -f @prefix@/sbin/plpnfsd ] || exit 0
[ -f /etc/sysconfig/psion ] || exit 0
. /etc/sysconfig/psion

MGETTY_HASPLP=false

if grep -qs ^/PLP/ /etc/mgetty+sendfax/login.config ; then
	mrun=`pidofproc mgetty`
	test -n "$mrun" && MGETTY_HASPLP=true
fi

start() {
  	if $MGETTY_HASPLP ; then
		echo "NOT Starting ncpd because mgetty configured for PLP"
		exit 0
	fi
	echo -n "Starting Psion support (ncpd): "
	daemon @prefix@/sbin/ncpd $NCPD_ARGS
	RETVAL=$?
	echo
	if [ $RETVAL -eq 0 ] ; then
		if test "$START_PLPNFSD" = "yes" ; then
			echo -n "Starting Psion support (plpnfsd): "
			daemon @prefix@/sbin/plpnfsd $PLPNFSD_ARGS
			RETVAL=$?
			echo
		fi
		if test "$START_PLPPRINTD" = "yes" ; then
			echo -n "Starting Psion support (plpprintd): "
			daemon @prefix@/sbin/plpprintd $PLPPRINTD_ARGS
			RETVAL=$?
			echo
		fi
	fi
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/psion
	return $RETVAL
}

stop() {
	echo -n "Stopping Psion support: "
	if test "$START_PLPNFSD" = "yes" ; then
		killproc plpnfsd -HUP
		WAIT=5
		while test $WAIT -gt 0 ; do
			test -z "`pidofproc plpnfsd`" && break;
			sleep 1 # allow plpnfsd flushing it's cache
			WAIT=`expr $WAIT - 1`
		done
		test -n "`pidofproc plpnfsd`" && killproc plpnfsd
	fi
	if test "$START_PLPPRINTD" = "yes" ; then
		killproc plpprintd
	fi
	killproc ncpd
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/psion
	return $RETVAL
}

restart() {
	stop
	start
}

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

exit $?