#!/bin/sh
#
# Start and stop the prime-net client.

set -e

DAEMON="/usr/bin/prime-net"
VARLIB="/var/lib/prime-net"
OPTIONS="-w$VARLIB"

test -x $DAEMON || exit 0

case "$1" in
	start)
		echo -n "Starting GIMPS client: prime-net"
		cd $VARLIB || exit 1

		# Check if prime-net is running by sending signal 0, which 
		# has no effect.
		if start-stop-daemon --quiet --stop --signal 0 \
			--user daemon --name prime-net 2>/dev/null
		then
			echo " already running."
			exit 0
		fi

		su daemon -c "$DAEMON $OPTIONS -b" \
			>>/var/log/prime-net.log 2>&1 &

		echo "."
		;;
	stop)
		echo -n "Stopping the GIMPS client: prime-net"
		# Check if prime-net is running by sending signal 0, which 
		# has no effect.
		if start-stop-daemon --quiet --stop --signal 0 \
			--user daemon --name prime-net 2>/dev/null
		then
			start-stop-daemon --quiet --stop --signal 2 \
				--user daemon --name prime-net
			attempts=0
			while start-stop-daemon --quiet --stop --signal 0 \
				--user daemon --name prime-net 2>/dev/null
			do
				echo -n "."
				sleep 1
				attempts=`expr $attempts + 1`
				if [ $attempts -gt 60 ]
				then
					echo
					echo "prime-net is still running. Giving up!"
					exit 1
				fi
			done
			echo
		else
			echo " not running."
		fi
		;;
	force-reload|restart)
		# -HUP has no effect on the client.
		# Check if the daemon is actually running.
		if start-stop-daemon --quiet --stop --signal 0 \
			--user daemon --name prime-net 2>/dev/null
		then
			$0 stop
			$0 start
		fi
		;;
        report)
                echo -n "GIMPS: Reporting to the server: "
                cd $VARLIB || exit 1
                su daemon -c "$DAEMON $OPTIONS -c"
                ;;
	*)
		echo "Usage: /etc/init.d/prime-net {start|stop|restart|force-reload|report}"
		exit 2
esac

exit 0
