diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/palaver/.gitignore | 1 | ||||
-rw-r--r-- | contrib/palaver/Makefile | 27 | ||||
-rw-r--r-- | contrib/palaver/rc.d/pounce_palaver.in | 51 |
3 files changed, 78 insertions, 1 deletions
diff --git a/contrib/palaver/.gitignore b/contrib/palaver/.gitignore index d92ce2e..0644d94 100644 --- a/contrib/palaver/.gitignore +++ b/contrib/palaver/.gitignore @@ -1,3 +1,4 @@ *.o config.mk pounce-palaver +rc.d/pounce_palaver diff --git a/contrib/palaver/Makefile b/contrib/palaver/Makefile index 5810ce2..3321ac4 100644 --- a/contrib/palaver/Makefile +++ b/contrib/palaver/Makefile @@ -1,3 +1,7 @@ +PREFIX ?= /usr/local +MANDIR ?= ${PREFIX}/share/man +ETCDIR ?= ${PREFIX}/etc + CFLAGS += -std=c11 -Wall -Wextra -Wpedantic LDLIBS = -lcurl -lsqlite3 -ltls @@ -5,8 +9,29 @@ LDLIBS = -lcurl -lsqlite3 -ltls OBJS = notify.o +all: pounce-palaver + pounce-palaver: ${OBJS} ${CC} ${LDFLAGS} ${OBJS} ${LDLIBS} -o $@ +.SUFFIXES: .in + +.in: + sed -e 's|%%PREFIX%%|${PREFIX}|g' $< > $@ + clean: - rm -f pounce-palaver ${OBJS} + rm -f ${OBJS} pounce-palaver rc.d/pounce_palaver + +install: pounce-palaver pounce-palaver.1 ${INSTALLS} + install -d ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANDIR}/man1 + install pounce-palaver ${DESTDIR}${PREFIX}/bin + install -m 644 pounce-palaver.1 ${DESTDIR}${MANDIR}/man1 + +install-rcs: rc.d/pounce_palaver + install -d ${DESTDIR}${ETCDIR}/rc.d + install rc.d/pounce_palaver ${DESTDIR}${ETCDIR}/rc.d + +uninstall: + rm -f ${DESTDIR}${PREFIX}/bin/pounce-palaver + rm -f ${DESTDIR}${MANDIR}/man1/pounce-palaver.1 + rm -f ${DESTDIR}${ETCDIR}/rc.d/pounce_palaver diff --git a/contrib/palaver/rc.d/pounce_palaver.in b/contrib/palaver/rc.d/pounce_palaver.in new file mode 100644 index 0000000..f97e3e7 --- /dev/null +++ b/contrib/palaver/rc.d/pounce_palaver.in @@ -0,0 +1,51 @@ +#!/bin/sh + +# PROVIDE: pounce_palaver +# REQUIRE: LOGIN +# KEYWORD: shutdown + +. /etc/rc.subr + +name='pounce_palaver' +rcvar='pounce_palaver_enable' + +load_rc_config "${name}" + +: ${pounce_palaver_enable:='NO'} + +command='/usr/sbin/daemon' +pidprefix="/var/run/${name}" +pidfile="${pidprefix}.pid" + +child_command='%%PREFIX%%/bin/pounce-palaver' + +if [ -n "$2" ]; then + profile=$2 + if [ -n "${pounce_palaver_profiles}" ]; then + pidfile="${pidprefix}.${profile}.pid" + eval pounce_palaver_enable="\${pounce_palaver_${profile}_enable:-${pounce_palaver_enable}}" + eval pounce_palaver_flags="\${pounce_palaver_${profile}_flags:-${pounce_palaver_flags}}" + eval pounce_palaver_user="\${pounce_palaver_${profile}_user:-${pounce_palaver_user}}" + eval pounce_palaver_env="\${pounce_palaver_${profile}_env:-${pounce_palaver_env}}" + else + echo "$0: extra argument ignored" + fi +else + if [ -n "${pounce_palaver_profiles}" -a -n "$1" ]; then + for profile in ${pounce_palaver_profiles}; do + echo "===> ${name} profile: ${profile}" + %%PREFIX%%/etc/rc.d/${name} "$1" "${profile}" || exit "$?" + done + exit + fi +fi + +child_flags=$pounce_palaver_flags +child_user=$pounce_palaver_user +unset pounce_palaver_flags pounce_palaver_user +command_args="\ + -r -P ${pidfile} -T ${name}${profile:+/${profile}} \ + ${child_user:+-u ${child_user}} \ + -- ${child_command} ${child_flags}" + +run_rc_command "$1" |