#!/bin/sh

# PROVIDE: pgbouncer
# REQUIRE: LOGIN
# BEFORE:  securelevel
# KEYWORD: shutdown

# Add the following lines to /etc/rc.conf to enable pgbouncer:
#
# pgbouncer_enable (bool):      Set to "YES" to enable pgbouncer
#                               Default is "NO".
# pgbouncer_conf (path):        Set full path to configuration file.
#                               Default is "/usr/local/etc/pgbouncer.ini".
# pgbouncer_flags (string):     Additional flags passed to pgbouncer.
#                               Default is "".
# pgbouncer_sig_stop (str):     Default to "TERM"

. /etc/rc.subr

name="pgbouncer"
rcvar=pgbouncer_enable

load_rc_config "$name"
: ${pgbouncer_enable="NO"}
: ${pgbouncer_user="pgbouncer"}
: ${pgbouncer_conf="/usr/local/etc/$name.ini"}

gracefulstop_cmd="pgbouncer_gracefulstop"
stop_precmd="pgbouncer_prestop"

extra_commands="reload gracefulstop"

command="/usr/local/bin/pgbouncer"
pidfile="/var/run/pgbouncer/$name.pid"
required_files="${pgbouncer_conf}"
command_args="-d ${pgbouncer_conf}"

pgbouncer_gracefulstop()
{
	echo "Performing a graceful stop:"
	sig_stop="INT"
	run_rc_command ${rc_prefix}stop ${rc_extra_args} || return 1
}

pgbouncer_prestop()
{
	sig_stop="${pgbouncer_sig_stop:-TERM}"
}

run_rc_command "$1"
