#!/bin/sh
#
# PROVIDE: zmtools
# REQUIRE: NETWORKING
# KEYWORD: shutdown
#
# zonemaster.es DNS tools API. Enable with:
#   sysrc zmtools_enable=YES
#   sysrc zmtools_host=10.20.0.22   # jail IP the host nginx proxies to

. /etc/rc.subr

name=zmtools
rcvar=zmtools_enable

load_rc_config $name
: ${zmtools_enable:=NO}
: ${zmtools_user:=zmtools}
: ${zmtools_dir:=/usr/local/zmtools}
: ${zmtools_host:=127.0.0.1}
: ${zmtools_port:=5100}
: ${zmtools_log:=/var/log/zmtools.log}

pidfile=/var/run/${name}/${name}.pid
procname=/usr/sbin/daemon
command=/usr/sbin/daemon
command_args="-f -r -R 5 -P ${pidfile} -o ${zmtools_log} \
    /usr/bin/env ZMTOOLS_HOST=${zmtools_host} ZMTOOLS_PORT=${zmtools_port} \
    PYTHONPATH=${zmtools_dir} /usr/local/bin/python3.12 -m zmtools.server"

# rc.subr runs the command via su as ${zmtools_user}. daemon -u is not used:
# inside a jail its setusercontext() fails ("failed to set user environment").
zmtools_user=${zmtools_user}
start_precmd=zmtools_prestart
zmtools_prestart()
{
    install -d -o ${zmtools_user} -m 755 /var/db/zmtools /var/run/${name}
    touch ${zmtools_log} && chown ${zmtools_user} ${zmtools_log}
}

run_rc_command "$1"
