#!/bin/sh
# $FreeBSD$

# PROVIDE: telegraf
# REQUIRE: DAEMON NETWORKING
# BEFORE: LOGIN
# KEYWORD: shutdown

# Add the following lines to /etc/rc.conf to enable telegrafb:
# telegraf_enable="YES"
#
# telegraf_enable (bool):	Set to YES to enable telegraf
#				Default: NO
# telegraf_conf (str):		telegraf configuration file
#				Default: ${PREFIX}/etc/telegraf.conf
# telegraf_user (str):		telegraf daemon user
#				Default: telegraf
# telegraf_group (str):		telegraf daemon group
#				Default: telegraf
# telegraf_flags (str):		Extra flags passed to telegraf
#				Default: -quiet

. /etc/rc.subr

PATH=${PATH}:/usr/local/sbin:/usr/local/bin

name="telegraf"
rcvar=telegraf_enable
load_rc_config $name

: ${telegraf_enable:="NO"}
: ${telegraf_user:="telegraf"}
: ${telegraf_group:="telegraf"}
: ${telegraf_flags:="-quiet"}
: ${telegraf_conf:="/usr/local/etc/${name}.conf"}
: ${telegraf_options:="${telegraf_flags} -config=${telegraf_conf}"}

logfile="/var/log/telegraf/${name}.log"
pidfile="/var/run/${name}.pid"
command=/usr/sbin/daemon
start_precmd="telegraf_prestart"
start_cmd="telegraf_start"
stop_cmd="telegraf_stop"

telegraf_prestart()
{
    install -d -o ${telegraf_user} -g ${telegraf_group} -m750 /var/log/telegraf
}

telegraf_start()
{
    echo "Starting ${name}"
    /usr/sbin/daemon -cr -P ${pidfile} -u ${telegraf_user} \
        /usr/local/bin/${name} ${telegraf_options} >> ${logfile} 2>&1
}

telegraf_stop()
{
    if [ -f ${pidfile} ] && procstat $(cat ${pidfile}) >/dev/null 2>&1; then
        local pid=$(cat ${pidfile})
        echo "Stopping ${name} (pid=${pid})"
        kill -- -${pid}
    else
        echo "${name} isn't running"
    fi
}

run_rc_command "$1"
