#!/bin/sh
# Start/stop the GNUnet daemon.

# ubuntu init.d script, required user gnunet, optional binaries installed to /home/gnunet/bin

# add path
export PATH="$PATH:/home/gnunet/bin"

# gnunetd options
OPT="--user=gnunet"

# test gnunet user access to binary
su -p gnunet -c "gnunetd --version" 1>/dev/null 2>/dev/null
test $? -eq 0 || exit 0


. /lib/lsb/init-functions

case "$1" in
start)	log_begin_msg "Starting GNUnet daemon..."
        #start-stop-daemon --start --quiet --name gnunetd --startas "$EXEC" -- "$OPT"
	su -p gnunet -c "gnunetd \"$OPT\"" 1>/dev/null 2>/dev/null
        log_end_msg $?
	;;
stop)	log_begin_msg "Stopping GNUnet daemon..."
        start-stop-daemon --user gnunet --stop --quiet --name gnunetd
        log_end_msg $?
        ;;
restart) log_begin_msg "Restarting GNUnet daemon..."
        start-stop-daemon --user gnunet --stop --retry 5 --quiet --name gnunetd
        #start-stop-daemon --start --quiet --pidfile /var/run/gnunetd.pid --name gnunetd --startas "$EXEC" -- "$OPT"
	su -p gnunet -c "gnunetd \"$OPT\"" 1>/dev/null 2>/dev/null
	log_end_msg $?
        ;;
status) log_begin_msg "GNUnet status..."
        #start-stop-daemon --start --quiet --pidfile /var/run/gnunetd.pid --name gnunetd --startas "$EXEC" -- "$OPT"
	su -p gnunet -c "gnunet-stats --version" 1>/dev/null 2>/dev/null
	if test $? -eq 0 ;then
    	    su -p gnunet -c gnunet-stats
	else
    	    log_end_msg $?
	fi;
        ;;

reload|force-reload) log_begin_msg "Reloading configuration files for GNUnet daemon..."
	# stop
        start-stop-daemon --user gnunet --stop --quiet --name gnunetd
	# sleep
	sleep 5
	# start
	su -p gnunet -c "gnunetd \"$OPT\"" 1>/dev/null 2>/dev/null
	# ...or hup if gnunetd supports	
        log_end_msg 0
        ;;
*)	log_success_msg "Usage: /etc/init.d/gnunet start|stop|restart|status|reload|force-reload"
        exit 1 
        ;;
esac
exit 0
