#!/bin/bash
# Start/stop the Octez VDF daemon
#
### BEGIN INIT INFO
# Provides:          octez-vdf
# Required-Start:    octez-node
# Required-Stop:
# Should-Start:      $network $named
# Should-Stop:       $network $named
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: The Octez VDF daemon
# Description:       The Octez VDF service inserts calculations into the
#		     blockchain to improve randomness.
### END INIT INFO

PATH=/bin:/usr/bin:/sbin:/usr/sbin
export DESC="octez vdf"
NAME=octez-vdf
PIDDIR=/var/run/tezos
PIDFILE=$PIDDIR/octez-vdf.pid
export SCRIPTNAME=/etc/init.d/"$NAME"

if [ -f "/lib/lsb/init-functions" ]; then
        . /lib/lsb/init-functions
else
        . /etc/rc.d/init.d/functions
fi

# Defaults
user=tezos
group=tezos
logdir=/var/log/tezos
rotateonstart=yes

#shellcheck disable=SC1091
[ -r /etc/octez/node.conf ] && . /etc/octez/node.conf
#shellcheck disable=SC1091
[ -r /etc/octez/baker.conf ] && . /etc/octez/baker.conf

logfile_base="${logdir}/vdf_"
baker="/usr/bin/octez-baker"

initial_checks()
{
	mkdir -p ${PIDDIR}
	chown $user:$group ${PIDDIR}

	mkdir -p ${logdir}
	chown $user:$group ${logdir}

}

rotate_logs ()
{
	if [ ${rotateonstart} = "yes" ]; then
		[ -f "${logfile_base}.log" ] && \
			mv -f "${logfile_base}.log" "${logfile_base}.log.1"
		done
	fi
}

case "$1" in
start)	initial_checks
	rotate_logs
	su $user -c "${baker} run vdf -K >> ${logfile_base}.log 2>&1 & echo \$! > ${PIDFILE}"
	;;
stop)
    	kill "$(cat ${PIDFILE})"
	rm -f ${PIDFILE}
        ;;
restart)
        $0 stop
        $0 start
        ;;
reload|force-reload)
        ;;
status)
       	status_of_proc -p ${PIDFILE} ${baker} $NAME || exit $?
	exit 0
        ;;
*)	echo "Usage: $0 {start|stop|status|restart|reload|force-reload}" >&2
        exit 2
        ;;
esac
exit 0
