Date: 21 May 2009 00:57:34 -0000 From: "Ryan T.Dean" <rtdean@cytherianage.net> To: FreeBSD-gnats-submit@FreeBSD.org Cc: marcus@FreeBSD.org Subject: ports/134768: Update port: net/tac_plus4 add profiles support to rc.d script Message-ID: <20090521005734.8886.qmail@noisy.cytherianage.net> Resent-Message-ID: <200905210100.n4L10BCd098385@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 134768 >Category: ports >Synopsis: Update port: net/tac_plus4 add profiles support to rc.d script >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Thu May 21 01:00:10 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Ryan T. Dean >Release: FreeBSD 7.1-STABLE amd64 >Organization: >Environment: System: FreeBSD noisy.cytherianage.net 7.1-STABLE FreeBSD 7.1-STABLE #3: Sat Jan 10 00:14:55 UTC 2009 root@noisy.cytherianage.net:/usr/obj/usr/src/sys/GENERIC amd64 >Description: The current tac_plus rc.d script is great for starting a single daemon process, however, sometimes you need to run multiple daemons to handle different segments or groups. I've patched the tac_plus rc.d script to add profiles support. >How-To-Repeat: n/a >Fix: --- tac_plus4-rcd-script.patch begins here --- --- ports/net/tac_plus4/files/tac_plus.in 2006-10-31 02:42:33.000000000 +0000 +++ ports/net/tac_plus4/files/tac_plus.in 2009-05-21 00:33:47.000000000 +0000 @@ -2,18 +2,24 @@ # # $FreeBSD: ports/net/tac_plus4/files/tac_plus.in,v 1.1 2006/10/31 02:42:33 marcus Exp $ # + # PROVIDE: tac_plus # REQUIRE: DAEMON + # # Add the following line to /etc/rc.conf to enable the TACACS+ daemon: # -# tac_plus_enable="YES" -# - -tac_plus_enable=${tac_plus_enable-"NO"} -tac_plus_flags=${tac_plus_flags-"-C %%PREFIX%%/etc/tac_plus.conf"} - -. %%RC_SUBR%% +# tac_plus_enable (bool): Set to "NO" by default +# Set it to "YES" to enable tac_plus +# tac_plus_flags (str): Set to "" by default +# Extra flags to be passed to start command +# tac_plus_profiles (str): Set to "" by default +# Allows you to run multiple tac_plus daemons with +# different settings +# tac_plus_configfile (str): Set to "%%PREFIX%%/etc/tac_plus.conf" by default +# Allows you to specify a different config file for +# the tac_plus daemon +. %%RC_SUBR%% name=tac_plus rcvar=`set_rcvar` @@ -21,5 +27,72 @@ command="%%PREFIX%%/bin/tac_plus" pidfile="/var/run/${name}.pid" +tac_plus_enable=${tac_plus_enable:-"NO"} +tac_plus_flags=${tac_plus_flags:-} +tac_plus_profiles=${tac_plus_profiles:-} +tac_plus_configfile=${tac_plus_configfile:-"%%PREFIX%%/etc/tac_plus.conf"} + load_rc_config ${name} + +if [ -n "$2" ]; then + profile="$2" + if [ "x${tac_plus_profiles}" != "x" ]; then + eval tac_plus_configfile="\${tac_plus_${profile}_configfile:-}" + if [ "x${tac_plus_configfile}" = "x" ]; then + echo "You must define a configuration file (tac_plus_${profile}_configfile)" + exit 1 + fi + required_files="${tac_plus_configfile}" + eval tac_plus_enable="\${tac_plus_${profile}_enable:-${tac_plus_enable}}" + eval tac_plus_flags="\${tac_plus_${profile}_flags:-${tac_plus_flags}}" + eval tac_plus_port="\${tac_plus_${profile}_port:-}" + eval tac_plus_ip="\${tac_plus_${profile}_ip:-}" + else + echo "$0: extra argument ignored" + fi +else + if [ "x${tac_plus_profiles}" != "x" -a "x$1" != "x" ]; then + for profile in ${tac_plus_profiles}; do + eval _enable="\${tac_plus_${profile}_enable}" + case "x${_enable:-${tac_plus_enable}}" in + x|x[Nn][Oo]|x[Nn][Oo][Nn][Ee]) + continue + ;; + x[Yy][Ee][Ss]) + ;; + *) + if test -z "$_enable"; then + _var=tac_plus_enable + else + _var=tac_plus_"${profile}"_enable + fi + echo "Bad value "\ + "'${_enable:-${tac_plus_enable}}' "\ + "for ${_var}. "\ + "Profile ${profile} skipped." + continue + esac + echo "====> tac_plus profile: ${profile}" + %%PREFIX%%/etc/rc.d/tac_plus $1 ${profile} + retcode="$?" + if [ "0${retcode}" -ne 0 ]; then + failed="${profile} (${retcode}) ${failed:-}" + else + success="${profile} ${success:-}" + fi + done + exit 0 + fi +fi + +tac_plus_flags="-C ${tac_plus_configfile} ${tac_plus_flags}" +if [ "x${tac_plus_ip}" != "x" ]; then + pidfile="${pidfile}.${tac_plus_ip}" + tac_plus_flags="${tac_plus_flags} -B ${tac_plus_ip}" +fi +if [ "x${tac_plus_port}" != "x" ]; then + pidfile="${pidfile}.${tac_plus_port}" + tac_plus_flags="${tac_plus_flags} -p ${tac_plus_port}" +fi + run_rc_command "$1" --- tac_plus4-rcd-script.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090521005734.8886.qmail>