#!/bin/sh
#
# PROVIDE: %%PORTNAME%%
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# %%RC_NAME%%_enable (bool):        Set to NO by default.
#                       Set it to YES to enable it.
# %%RC_NAME%%_ip_addr:      IP Address used to listen for connections
#                       Default: 0.0.0.0
# %%RC_NAME%%_conf_dir:     Directory where %%RC_NAME%% configuration
#                       data is stored.
#                       Default: %%PREFIX%%/%%RC_NAME%%
# %%RC_NAME%%_settings:     Directory and file name of %%RC_NAME%% settings
#                       db is stored.
#                       Default: %%PREFIX%%/%%RC_NAME%%/app.db
# %%RC_NAME%%_gdrive:       Directory and file name of %%RC_NAME%% gdrive
#                       db is stored.
#                       Default: %%PREFIX%%/%%RC_NAME%%/gdrive.db
# %%RC_NAME%%_cert:         Directory and file name of %%RC_NAME%%
#                       certificate is stored.
#                       Default: None
# %%RC_NAME%%_key:          Directory and file name of %%RC_NAME%%
#                       key is stored.
#                       Default: None
# %%RC_NAME%%_flags:        Additonal flags as needed
#                       Default: None
# %%RC_NAME%%_user:         The user account %%RC_NAME%% daemon runs as what
#                       you want it to be. It uses '%%RC_NAME%%' user by
#                       default. Do not set it as empty or it will run
#                       as root.
# %%RC_NAME%%_group:        The group account %%RC_NAME%% daemon runs as what
#                       you want it to be. It uses '%%RC_NAME%%' group by
#                       default. Do not set it as empty or it will run
#                       as wheel.
# %%RC_NAME%%_pid:      Set the name of the %%RC_NAME%% pidfile
#                       Default: %%PORTNAME%%.pid
# %%RC_NAME%%_pid_dir:      Set the directory of the %%RC_NAME%% pidfile
#                       Default: /var/run/%%PORTNAME%%
# %%RC_NAME%%_log:      Set the name of the %%RC_NAME%% logfile
#                       Default: %%PORTNAME%%.log
# %%RC_NAME%%_log_dir:      Set the directory of the %%RC_NAME%% logfile
#                       Default: /var/log/%%PORTNAME%%

. /etc/rc.subr

name=%%RC_NAME%%
rcvar=%%RC_NAME%%_enable
load_rc_config ${name}

: ${%%RC_NAME%%_enable:=NO}
: ${%%RC_NAME%%_user:=%%USER%%}
: ${%%RC_NAME%%_group:=%%GROUP%%}
: ${%%RC_NAME%%_ip_addr:="0.0.0.0"}
: ${%%RC_NAME%%_conf_dir:="%%DATADIR%%"}
: ${%%RC_NAME%%_settings:="${%%RC_NAME%%_conf_dir}/app.db"}
: ${%%RC_NAME%%_gdrive:="${%%RC_NAME%%_conf_dir}/gdrive.db"}
: ${%%RC_NAME%%_pid:="%%PORTNAME%%.pid"}
: ${%%RC_NAME%%_pid_dir:="/var/run/%%PORTNAME%%"}
: ${%%RC_NAME%%_log:="%%PORTNAME%%.log"}
: ${%%RC_NAME%%_log_dir:="/var/log/%%PORTNAME%%"}

pidfile=${%%RC_NAME%%_pid_dir}/${%%RC_NAME%%_pid}
logfile=${%%RC_NAME%%_log_dir}/${%%RC_NAME%%_log}

start_precmd="${name}_prestart"

procname="%%PREFIX%%/bin/cps"
command_interpreter="%%PYTHON_CMD%%"
command="/usr/sbin/daemon"
command_args="-p $pidfile $procname \
		-i ${%%RC_NAME%%_ip_addr} \
		-p ${%%RC_NAME%%_settings} \
		-g ${%%RC_NAME%%_gdrive} \
		${%%RC_NAME%%_cert:+-c ${%%RC_NAME%%_cert}} \
		${%%RC_NAME%%_key:+-k ${%%RC_NAME%%_key}} \
		-o $logfile"

%%RC_NAME%%_prestart()
{
	PATH=${PATH}:%%PREFIX%%/bin:%%PREFIX%%/sbin
	export CACHE_DIRECTORY=${%%RC_NAME%%_conf_dir}/cache

	for calwebdir in ${%%RC_NAME%%_pid_dir} ${%%RC_NAME%%_log_dir} ${%%RC_NAME%%_conf_dir}; do
		[ -d ${calwebdir} ] || install -d -g ${%%RC_NAME%%_group} -o ${%%RC_NAME%%_user} ${calwebdir}
	done
}

run_rc_command $1
