From 2621dc248cdc71034495a41cd388de105d6f6b1a Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Sat, 26 Oct 2019 00:35:31 -0400 Subject: Add rc script --- Makefile | 7 ++++--- README.7 | 6 +++++- rc.pounce | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 rc.pounce diff --git a/Makefile b/Makefile index 6889107..f208e25 100644 --- a/Makefile +++ b/Makefile @@ -29,10 +29,11 @@ tags: *.c *.h clean: rm -f tags pounce ${OBJS} -install: pounce pounce.1 - install -d ${PREFIX}/bin ${MANDIR}/man1 +install: pounce pounce.1 rc.pounce + install -d ${PREFIX}/bin ${MANDIR}/man1 ${PREFIX}/etc/rc.d install pounce ${PREFIX}/bin install -m 644 pounce.1 ${MANDIR}/man1 + install rc.pounce ${PREFIX}/etc/rc.d/pounce uninstall: - rm -f ${PREFIX}/bin/pounce ${MANDIR}/man1/pounce.1 + rm -f ${PREFIX}/bin/pounce ${MANDIR}/man1/pounce.1 ${PREFIX}/etc/rc.d/pounce diff --git a/README.7 b/README.7 index 7bc7f5f..78bbb11 100644 --- a/README.7 +++ b/README.7 @@ -22,7 +22,7 @@ and targets .Fx . . .Sh FILES -.Bl -tag -width "bounce.h" -compact +.Bl -tag -width "rc.pounce" -compact .It Pa bounce.h common declarations and default paths .It Pa bounce.c @@ -37,6 +37,10 @@ remote client functions state shared between clients .It Pa ring.c buffer between server and clients +.It Pa rc.pounce +.Fx +.Xr rc 8 +script .El . .Sh SEE ALSO diff --git a/rc.pounce b/rc.pounce new file mode 100644 index 0000000..bf95504 --- /dev/null +++ b/rc.pounce @@ -0,0 +1,49 @@ +#!/bin/sh + +# PROVIDE: pounce +# REQUIRE: LOGIN +# KEYWORD: shutdown + +. /etc/rc.subr + +name='pounce' +rcvar='pounce_enable' + +load_rc_config "${name}" + +: ${pounce_enable:="NO"} + +_command='/usr/local/bin/pounce' +command='/usr/sbin/daemon' +pidprefix="/var/run/${name}" +pidfile="${pidprefix}.pid" + +if [ -n "$2" ]; then + profile=$2 + if [ -n "${pounce_profiles}" ]; then + pidfile="${pidprefix}.${profile}.pid" + eval pounce_enable="\${pounce_${profile}_enable:-${pounce_enable}}" + eval pounce_flags="\${pounce_${profile}_flags:-${pounce_flags}}" + eval pounce_user="\${pounce_${profile}_user:-${pounce_user}}" + else + echo "$0: extra argument ignored" + fi +else + if [ -n "${pounce_profiles}" -a -n "$1" ]; then + for profile in ${pounce_profiles}; do + echo "===> ${name} profile: ${profile}" + /usr/local/etc/rc.d/${name} "$1" "${profile}" || exit "$?" + done + exit + fi +fi + +_pounce_flags=$pounce_flags +_pounce_user=$pounce_user +unset pounce_flags pounce_user +command_args="\ + -r -P ${pidfile} -T ${name}${profile:+/${profile}} \ + ${_pounce_user:+-u ${_pounce_user}} \ + -- ${_command} ${_pounce_flags}" + +run_rc_command "$1" -- cgit 1.4.1