#!/bin/sh

# PROVIDE: mango_authority_metrics
# REQUIRE: nginx
# KEYWORD: shutdown nojail

. /etc/rc.subr

name=mangoam
rcvar=mangoam_enable

load_rc_config mangoam

: ${mangoam_enable:="NO"}
: ${mangoam_socket:="/tmp/mango_authority_metrics.sock"}

mangoam_user=mango

pidfile=${mangoam_pidfile:="/var/run/mangoam.pid"}
workdir=${mangoam_workdir:="/Berkanavt/mango/authority_metrics/viewer"}
scriptfile="$workdir/manage.py"

extra_commands="status"

start_precmd="mangoam_prestart"
start_postcmd="mangoam_poststart"
stop_cmd="mangoam_stop"
start_cmd="mangoam_start"
status_cmd="mangoam_status"

mangoam_start () {
	mangoam_status >/dev/null && \
		{ echo "$name is already running" >&2 ; return 1 ; } || \
		su -l $mangoam_user -c "export PYTHONPATH=${mangoam_workdir%viewer}mango-pydeps-0.1/pydeps ; \
		python $scriptfile \
		runfcgi method=prefork protocol=fcgi \
		pidfile=${pidfile} socket=${mangoam_socket}"
}

mangoam_stop () {
	ps ww -U $mangoam_user | grep $(cat $pidfile) | grep -q "$scriptfile" && \
		kill $(cat $pidfile)
}

mangoam_status () {
	ps ww -U $mangoam_user | grep $(cat $pidfile) | grep -q "$scriptfile" && \
		echo "$name is running" || \
		{ echo "$name is NOT running" ; return 1 ; }
}

mangoam_prestart ()
{
	touch $pidfile
	chown $mangoam_user $pidfile
	cd "$workdir"
}

mangoam_poststart () {
	chmod g+rw "$mangoam_socket"
	chgrp www "$mangoam_socket"
}

run_rc_command "$1"
