diff --git a/net/microsocks/Makefile b/net/microsocks/Makefile index b430157d39a8..42dec53a2a8f 100644 --- a/net/microsocks/Makefile +++ b/net/microsocks/Makefile @@ -1,5 +1,6 @@ PORTNAME= microsocks PORTVERSION= 1.0.2 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= https://ftp.barfooze.de/pub/sabotage/tarballs/ @@ -10,6 +11,7 @@ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/COPYING USES= tar:xz +USE_RC_SUBR= microsocks PLIST_FILES= bin/microsocks diff --git a/net/microsocks/files/microsocks.in b/net/microsocks/files/microsocks.in new file mode 100644 index 000000000000..e78b3c991a4e --- /dev/null +++ b/net/microsocks/files/microsocks.in @@ -0,0 +1,70 @@ +#!/bin/sh + +# PROVIDE: microsocks +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Add these lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# microsocks_enable (bool): Enable microsocks +# Default: NO +# microsocks_user (str): User to run microsocks under +# Default: unset +# microsocks_args (str): Arguments for microsocks +# Default: unset +# microsocks_syslog_enable(bool): Enable writing output to syslog. +# Default: YES +# microsocks_syslog_tag(str): Syslog tag if syslog enabled. +# Default: microsocks +# microsocks_syslog_priority(str): Syslog priority if syslog enabled. +# Default: info +# microsocks_syslog_facility(str): Syslog facility if syslog enabled. +# Default: daemon + +. /etc/rc.subr + +name=microsocks +rcvar=microsocks_enable + +load_rc_config $name + +: ${microsocks_enable:="NO"} +: ${microsocks_syslog_enable:="YES"} + +start_precmd=microsocks_prestart +stop_postcmd=microsocks_poststop + +if checkyesno microsocks_syslog_enable; then + if [ -n "${microsocks_syslog_tag}" ]; then + microsocks_syslog_flags="-T ${microsocks_syslog_tag}" + else + microsocks_syslog_flags="-T ${name}" + fi + if [ -n "${microsocks_syslog_priority}" ]; then + microsocks_syslog_flags="${microsocks_syslog_flags} -s ${microsocks_syslog_priority}" + fi + if [ -n "${microsocks_syslog_facility}" ]; then + microsocks_syslog_flags="${microsocks_syslog_flags} -l ${microsocks_syslog_facility}" + fi +fi + +pidfile="/var/run/${name}.pid" +microsocks_command="%%PREFIX%%/bin/${name}" +command="/usr/sbin/daemon" +command_args="-f ${microsocks_syslog_flags} -P ${pidfile} -t ${name} ${microsocks_command} ${microsocks_args}" + +microsocks_prestart() +{ + if [ -z "${microsocks_user}" ]; then + err 3 "microsocks: microsocks_user unset. Set it to an existing user and try again." + fi + install -m 0600 -o "${microsocks_user}" /dev/null "${pidfile}" +} + +microsocks_poststop() +{ + rm -f "${pidfile}" +} + +run_rc_command "$1"