83eb2c3700
literal name_enable wherever possible, and ${name}_enable when it's not, to prepare for the demise of set_rcvar(). In cases where I had to hand-edit unusual instances also modify formatting slightly to be more uniform (and in some cases, correct). This includes adding some $FreeBSD$ tags, and most importantly moving rcvar= to right after name= so it's clear that one is derived from the other.
83 lines
2.6 KiB
Bash
83 lines
2.6 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
# PROVIDE: tstatd
|
|
# REQUIRE: DAEMON
|
|
#
|
|
# Add the following lines to /etc/rc.conf to run tstatd:
|
|
#
|
|
# tstatd_enable (bool): Set it to "YES" to enable tstatd.
|
|
# Default is "NO".
|
|
# tstatd_profiles (strings): Example - "spam www"
|
|
# Default is empty.
|
|
# tstatd_profile_flags (string): Set extra flags. See tstatd(1) for details.
|
|
# Default is empty.
|
|
# tstatd_profile_listen (string): Set tstatd listen socket.
|
|
# Default is "127.0.0.1:3638".
|
|
# tstatd_profile_plugin (string): Set plugin name. See tstatd(1) for details.
|
|
# Default is empty. Required argument.
|
|
# tstatd_profile_user (user): Set user to run tstatd.
|
|
# Default is "nobody".
|
|
# tstatd_profile_zones (string): Set tstatd 'zones'. See tstatd(1) for details.
|
|
# Default is "nobody". Required argument.
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="tstatd"
|
|
rcvar=tstatd_enable
|
|
|
|
load_rc_config ${name}
|
|
|
|
: ${tstatd_enable="NO"}
|
|
|
|
command=%%PREFIX%%/bin/tstatd
|
|
|
|
|
|
_profile_exists() {
|
|
for _p in ${tstatd_profiles}; do
|
|
[ "${_p}" = "$1" ] && return 1;
|
|
done
|
|
return 0
|
|
}
|
|
|
|
if [ $# -eq 2 ]; then
|
|
_profile=$2
|
|
_profile_exists $_profile
|
|
_exists=$?
|
|
[ ${_exists} -ne 1 ] && {
|
|
echo "`basename %%PREFIX%%/etc/rc.d/tstatd%%RC_SUBR_SUFFIX%%`: no '$2' in 'tstatd_profiles'"
|
|
exit 1
|
|
};
|
|
echo "-- Profile: $2 --"
|
|
eval _plugin=\${${name}_${_profile}_plugin}
|
|
[ -n "${_plugin}" ] || {
|
|
echo "`basename %%PREFIX%%/etc/rc.d/tstatd%%RC_SUBR_SUFFIX%%`: no 'tstatd_${_profile}_plugin' set"
|
|
exit 2
|
|
};
|
|
eval _zones=\${${name}_${_profile}_zones}
|
|
[ -n "${_zones}" ] || {
|
|
echo "`basename %%PREFIX%%/etc/rc.d/tstatd%%RC_SUBR_SUFFIX%%`: no 'tstatd_${_profile}_zones' set"
|
|
exit 2
|
|
};
|
|
eval _listen=\${${name}_${_profile}_listen:-127.0.0.1:3638}
|
|
eval _user=\${${name}_${_profile}_user:-nobody}
|
|
eval _flags=\${${name}_${_profile}_flags}
|
|
tstatd_flags="${_plugin} -l ${_listen} -u ${_user} -b /var/db/tstatd/${_profile}.db -p /var/run/tstatd/${_profile}.pid ${_flags} ${_zones}"
|
|
pidfile=/var/run/tstatd/${_profile}.pid
|
|
elif [ -n "${tstatd_profiles}" ]; then
|
|
_swap=$*; shift; _profiles=$*
|
|
_profiles=${_profiles:-${tstatd_profiles}}
|
|
set -- ${_swap}
|
|
for _profile in ${_profiles}; do
|
|
%%PREFIX%%/etc/rc.d/tstatd%%RC_SUBR_SUFFIX%% $1 ${_profile}
|
|
done
|
|
exit 0
|
|
else
|
|
echo "`basename %%PREFIX%%/etc/rc.d/tstatd%%RC_SUBR_SUFFIX%%`: set 'tstatd_profiles' in rc.conf"
|
|
exit 3
|
|
fi
|
|
|
|
|
|
run_rc_command "$1"
|
|
|