#!/bin/sh
#
# $FreeBSD: head/www/py-kallithea/files/kallithea.in 428440 2016-12-12 20:58:11Z rene $
#

# PROVIDE: kallithea
# REQUIRE: NETWORKING FILESYSTEMS mountlate
# KEYWORD: shutdown

. /etc/rc.subr

name=kallithea
rcvar=kallithea_enable
desc="Fast and powerful management tool for Mercurial and Git"

load_rc_config ${name}

: ${kallithea_enable:=NO}
: ${kallithea_config=/usr/local/etc/kallithea.ini}
: ${kallithea_user:=www}
: ${kallithea_group:=www}
: ${kallithea_logfile=/var/log/kallithea/kallithea.log}
: ${kallithea_pidfile=/var/run/kallithea/kallithea.pid}

rcvars="kallithea_config kallithea_user kallithea_group kallithea_logfile kallithea_pidfile"
kallithea_enable_desc="Set to YES to enable kallithea"
kallithea_enable_defval=NO
kallithea_config_desc="Kallithea config file for paster"
kallithea_config_defval=/usr/local/etc/kallithea.ini
kallithea_user_desc="Set the user for paster"
kallithea_user_defval=www
kallithea_group_desc="Set the group for paster"
kallithea_group_defval=www
kallithea_logfile_desc="Save output to the given log file (redirects stdout)"
kallithea_logfile_defval=/var/log/kallithea/kallithea.log
kallithea_pidfile_desc="Save PID to file"
kallithea_pidfile_defval=/var/run/kallithea/kallithea.pid

command=/usr/local/bin/paster
pidfile="${kallithea_pidfile}"
required_files="${kallithea_config}"

command_args=" serve --pid-file=${pidfile} --log-file=${kallithea_logfile} --daemon ${kallithea_config}"

start_precmd=kallithea_prestart
status_cmd=kallithea_status
stop_cmd=kallithea_stop

kallithea_prestart()
{
	for _file in "${kallithea_logfile}" "${pidfile}"; do
		_dir="${_file%/*}"
		if [ ! -e "$_dir" ]; then
			install -d -o ${kallithea_user} "${_dir}"
		elif [ -f "$_dir" ]; then
			echo "Not a directory: $_dir"
			return 20
		fi
	done
}

kallithea_status()
{
	${command} serve --pid-file=${pidfile} --status ${kallithea_config}
	return $?
}

kallithea_stop()
{
	echo "Stopping ${name}."
	${command} serve --pid-file=${pidfile} --stop-daemon
	return $?
}

run_rc_command "$1"
