#!/bin/sh
#
# PROVIDE: littlefedi
# REQUIRE: LOGIN NETWORKING
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable littlefedi:
#
# littlefedi_enable (bool):   Set to YES to enable. Default: NO
# littlefedi_run_user (str):  Default: littlefedi
# littlefedi_config (str):    Default: /usr/local/etc/littlefedi/littlefedi.toml
# littlefedi_envfile (str):   Default: /usr/local/etc/littlefedi/littlefedi.env
# littlefedi_chdir (str):     Default: /var/db/littlefedi
#
# Not littlefedi_user: rc.subr would wrap daemon(8) in su(1).

. /etc/rc.subr

name="littlefedi"
rcvar="littlefedi_enable"
desc="littleFedi ActivityPub server"

load_rc_config $name

: ${littlefedi_enable:="NO"}
: ${littlefedi_run_user:="littlefedi"}
: ${littlefedi_config:="/usr/local/etc/littlefedi/littlefedi.toml"}
: ${littlefedi_envfile:="/usr/local/etc/littlefedi/littlefedi.env"}
: ${littlefedi_chdir:="/var/db/littlefedi"}

littlefedi_bin="/usr/local/bin/littlefedi"

# -u also applies the login class, which sets the descriptor limit.
pidfile="/var/run/littlefedi.supervisor.pid"
child_pidfile="/var/run/littlefedi.pid"
procname="/usr/sbin/daemon"
command="/usr/sbin/daemon"
command_args="-f -T ${name} -R 5 -P ${pidfile} -p ${child_pidfile} \
	-u ${littlefedi_run_user} \
	${littlefedi_bin} --config ${littlefedi_config}"

start_precmd="littlefedi_precmd"

littlefedi_precmd()
{
	if [ -r "${littlefedi_envfile}" ]; then
		set -a
		. "${littlefedi_envfile}"
		set +a
	fi
	umask 0077
}

run_rc_command "$1"
