#!/bin/sh

# PROVIDE: zetacoin
# REQUIRE: LOGIN
# KEYWORD: shutdown

#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# zetacoin_enable (bool):	Set to NO by default.
#				Set it to YES to enable zetacoin.
# zetacoin_config (path):	Set to /usr/local/etc/zetacoin.conf
#				by default.
# zetacoin_user:	The user account zetacoin daemon runs as
#				It uses 'zetacoin' user by default.
# zetacoin_group:	The group account zetacoin daemon runs as
#				It uses 'zetacoin' group by default.
# zetacoin_datadir (str):	Default to "/var/db/zetacoin"
#				Base data directory.

. /etc/rc.subr

name=zetacoin
rcvar=zetacoin_enable

load_rc_config $name

: ${zetacoin_enable:=NO}
: ${zetacoin_config=/usr/local/etc/zetacoin.conf}
: ${zetacoin_datadir=/var/db/zetacoin}
: ${zetacoin_user="zetacoin"}
: ${zetacoin_group="zetacoin"}

required_files=${zetacoin_config}
command=/usr/local/bin/zetacoind
cli_command=/usr/local/bin/zetacoin-cli
zetacoin_chdir=${zetacoin_datadir}
pidfile="${zetacoin_datadir}/zetacoind.pid"
stop_cmd=zetacoin_stop
command_args="-conf=${zetacoin_config} -datadir=${zetacoin_datadir} -noupnp -daemon -pid=${pidfile}"
start_precmd="${name}_prestart"
reindex_cmd="${name}_reindex"
salvage_cmd="${name}_salvage"
extra_commands="reindex salvage"

zetacoin_create_datadir()
{
	echo "Creating data directory"
	eval mkdir -p ${zetacoin_datadir}
	[ $? -eq 0 ] && chown -R ${zetacoin_user}:${zetacoin_group} ${zetacoin_datadir}
}

zetacoin_prestart()
{
	if [ ! -d "${zetacoin_datadir}/." ]; then
		zetacoin_create_datadir || return 1
	fi
}

zetacoin_requirepidfile()
{
	if [ ! "0`check_pidfile ${pidfile} ${command}`" -gt 1 ]; then
		echo "${name} not running? (check $pidfile)."
		exit 1
	fi
}

zetacoin_stop()
{
    zetacoin_requirepidfile

	echo "Stopping ${name}."
	eval ${cli_command} -conf=${zetacoin_config} -datadir=${zetacoin_datadir} stop
	wait_for_pids ${rc_pid}
}

zetacoin_reindex()
{
	if [ -z "$rc_fast" -a -n "$rc_pid" ]; then
	    zetacoin_stop
	fi

	echo "Reindexing ${name} blockchain."
	command_args="${command_args} -reindex"
	eval ${command} ${command_args}
}

zetacoin_salvage()
{
	if [ -z "$rc_fast" -a -n "$rc_pid" ]; then
	    zetacoin_stop
	fi

	echo "Attempting to salvage ${name} walllet."
	command_args="${command_args} -salvagewallet"
	eval ${command} ${command_args}
}

run_rc_command "$1"
