diff options
Diffstat (limited to 'net/uproxy/files/uproxy.in')
-rw-r--r-- | net/uproxy/files/uproxy.in | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/net/uproxy/files/uproxy.in b/net/uproxy/files/uproxy.in new file mode 100644 index 000000000000..d21c7f2379f4 --- /dev/null +++ b/net/uproxy/files/uproxy.in @@ -0,0 +1,54 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# +# PROVIDE: uproxy +# REQUIRE: NETWORKING +# +# Add the following line to /etc/rc.conf to enable uproxy +# +# uproxy_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable uproxy. +# uproxy_connections (str): Name for each uproxy connection. +# uproxy_connectionname_options (str): Commandline for each uproxy connection. +# + +. %%RC_SUBR%% + +name="uproxy" +rcvar=${name}_enable + +load_rc_config $name + +: ${uproxy_enable="NO"} + +command="/usr/local/sbin/${name}" +start_cmd="uproxy_startcmd" + +uproxy_startcmd() +{ + if [ -z "$rc_fast" -a -n "$rc_pid" ]; then + echo "${name} already running? (pid=$rc_pid)." + return 1 + fi + if [ -z "${uproxy_connections}" ]; then + err 1 "can't find uproxy_connections in /etc/rc.conf" + fi + echo Starting ${name}. + for connection in ${uproxy_connections}; do + eval options=\$uproxy_${connection}_options + if [ -z "${options}" ]; then + continue + fi + command_args="${options}" + cmd="${command} ${command_args}" + if [ -n "$uproxy_user" ]; then + cmd="su -m $uproxy_user -c '$cmd'" + fi + eval "$cmd > /dev/null &" + sleep 1 + done +} + +run_rc_command "$1" |