#!/bin/sh
#
# $Header$
#

# PROVIDE: tracker
# REQUIRE: DAEMON
# KEYWORD: shutdown

. /etc/rc.subr

name="tracker"
rcvar=`set_rcvar`

load_rc_config $name

# Defaults
: ${tracker_enable="NO"}
: ${tracker_user="webbase"}
: ${tracker_port="2399"}

: ${tracker_dir="/Berkanavt/torrent"}
: ${tracker_bindir="${tracker_dir}/scripts"}
: ${tracker_logdir="${tracker_dir}/log"}
: ${tracker_rundir="${tracker_dir}/run"}
: ${tracker_tmpdir="${tracker_dir}/tmp"}

: ${tracker_dfile="${tracker_tmpdir}/dfile"}
: ${tracker_checkfile="${tracker_rundir}/disable_check"}

: ${tracker_args="--port ${tracker_port} --dfile ${tracker_dfile}"}

command="${tracker_bindir}/yx-bittorrent-tracker"
command_interpreter="python"
command_args="${tracker_args}"

pidfile="${tracker_rundir}/${name}.pid"

# Custom commands
extra_commands="check"
start_precmd="${name}_prestart"
start_cmd="${name}_start"
stop_cmd="${name}_stop"
stop_postcmd="${name}_poststop"
check_cmd="${name}_check"

tracker_prestart()
{
	if [ -z "$rc_fast" -a -n "$rc_pid" ]; then
		echo 1>&2 "${name} already running? (pid=$rc_pid)."
		return 1
	fi

	if [ -f $tracker_checkfile ]; then
		rm -f $tracker_checkfile
	fi

	return 0
}

tracker_start()
{
	echo "Starting ${name}."

	if ! daemon -p $pidfile -u $tracker_user $command $rc_flags \
		$command_args >${tracker_logdir}/${name}.out 2>&1
	then
		return 1
	fi

	return 0
}

tracker_stop()
{
	if [ -z "$rc_pid" ]; then
		[ -n "$rc_fast" ] && return 0
		_run_rc_notrunning
		return 1
	fi

	echo "Stopping ${name}."

	if ! kill -TERM $rc_pid; then
		return 1
	fi

	wait_for_pids $rc_pid
}

tracker_poststop()
{
	if ! touch $tracker_checkfile; then
		return 1
	fi

	return 0

}

tracker_check()
{
	if [ -n "$rc_pid" ]; then
		return 0
	else
		if [ -f "$tracker_checkfile" ]; then
			return 0
		else
			echo "${name} is not running."
			return 1
		fi
	fi
}

run_rc_command "$1"
