#!/bin/sh

# PROVIDE: varnishncsa
# REQUIRE: DAEMON varnishd
# KEYWORD: shutdown

#
# Add the following line to /etc/rc.conf to enable varnishncsa:
#
# varnishncsa_enable="YES"
#
# Configuration variables and their default values:
#
# varnishncsa_pidfile - full path to the PID file.
#	default: "/var/run/varnishncsa.pid"
#
# varnishncsa_file - full path to the log file.
#	default: "/var/log/varnishncsa.log"
#
# varnishncsa_log_method - log to file or syslog
#       default: "-D -a -w ${varnishncsa_file}"
#       varnishncsa_syslog="YES": '| /usr/bin/logger -t varnish -p daemon.info &'
#
# varnishncsa_flags - command line arguments.
#	default: "-t off -P ${varnishncsa_pidfile} ${varnishncsa_logformat:+ -F \"$varnishncsa_logformat\"} ${varnishncsa_log_method}"
#
# varnishncsa_logformat - log file format.
#       default: "" (uses varnishncsa's default format)
#       example: "%h %l %u %t %r %s %b %{Referer}i %{User-agent}i"
#
# Add the following line to /etc/newsyslog.conf to rotate the log file
# once a day:
#
# /var/log/varnishncsa.log varnishlog:varnish 640 7 * @T00 JB /var/run/varnishncsa.pid
#
# See varnishncsa(1) for a detailed overview of command-line options.
#

. /etc/rc.subr

name=varnishncsa
rcvar=varnishncsa_enable

load_rc_config ${name}

: ${varnishncsa_enable:=NO}
: ${varnishncsa_pidfile=/var/run/${name}.pid}
: ${varnishncsa_file=/var/log/${name}.log}
: ${varnishncsa_flags="-t off -P ${varnishncsa_pidfile} ${varnishncsa_logformat:+-F \"$varnishncsa_logformat\"}"}
: ${varnishncsa_syslog:=NO}

if checkyesno varnishncsa_syslog; then
    varnishncsa_log_method='| /usr/bin/logger -t varnish -p daemon.info &'
else
    varnishncsa_log_method="-D -a -w ${varnishncsa_file}"
fi

command="%%PREFIX%%/bin/${name}"
command_args="${varnishncsa_flags} ${varnishncsa_log_method}"
pidfile=${varnishncsa_pidfile}
start_precmd=precmd

precmd()
{
        # $varnishncsa_flags gets applied too early if we don't do this.
        rc_flags=""

	if [ ! -e ${pidfile} ]; then
		install -o varnishlog -g varnish -m 644 /dev/null ${pidfile};
	fi

	if [ ! -e ${varnishncsa_file} ]; then
		install -o varnishlog -g varnish -m 640 /dev/null ${varnishncsa_file};
	fi
}

run_rc_command "$1"
