sysutils/nut*: Alternate upslog support for multiple UPSs

Add  sample rc script to allow a user to copy a sample rc script to
rc.d, allowing the user to use multiple instances of upslog(8) with
multiple instances of the rc script to log multiple UPSs on the same
system.

The sample rc script was provided by vvd@unislabs.com.

PR:		265963
Reported by:	vvd@unislabs.com
Submitted by:	vvd@unislabs.com
This commit is contained in:
Cy Schubert 2022-08-21 08:21:51 -07:00
parent dec4ecc3af
commit 0b5e039674
6 changed files with 110 additions and 2 deletions

View file

@ -1,6 +1,6 @@
PORTNAME= nut
PORTVERSION= ${NUT_COMMIT_DATE}
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= sysutils
PKGNAMESUFFIX= -devel
# MASTER_SITES= http://www.networkupstools.org/source/${PORTVERSION:R}/
@ -164,6 +164,7 @@ post-install:
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
${INSTALL_DATA} ${PATCHDIR}/nut.syslog ${STAGEDIR}${EXAMPLESDIR}/syslog.sample
${INSTALL_DATA} ${PATCHDIR}/nut.newsyslog ${STAGEDIR}${EXAMPLESDIR}/newsyslog.sample
${INSTALL_DATA} ${PATCHDIR}/nut_upslog.sample ${STAGEDIR}${EXAMPLESDIR}/nut_upslog.sample
${MKDIR} ${STAGEDIR}/var/log/nut
.include <bsd.port.post.mk>

View file

@ -0,0 +1,52 @@
#!/bin/sh
# Authored by vvd@unislabs.com.
# PROVIDE: nut_upslog
# REQUIRE: NETWORKING nut
# BEFORE: LOGIN
# KEYWORD: shutdown
. /etc/rc.subr
case $0 in
/etc/rc*)
# during boot (shutdown) $0 is /etc/rc (/etc/rc.shutdown),
# so get the name of the script from $_file
name=$_file
;;
*)
name=$0
;;
esac
name=${name##*/}
rcvar=${name}_enable
load_rc_config "${name}"
# Define these nut_upslog* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
# /etc/rc.conf.d/nut_upslog
#
# If you want to log several different UPSes:
# ln -s nut_upslog /usr/local/etc/rc.d/NAME
# then set variables NAME_enable, NAME_ups, NAME_pidbase, NAME_logfile and etc.
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
#
eval "${rcvar}=\${${rcvar}:-'NO'}"
eval "_prefix=\${${name}_prefix:-'/usr/local'}"
eval "_logfile=\${${name}_logfile:-'/var/log/nut/ups.log'}"
eval "_interval=\${${name}_interval:-'300'}"
eval "_ups=\${${name}_ups:-'myups@localhost'}"
eval "_pidbase=\${${name}_pidbase:-'upslog'}"
eval "_format=\${${name}_format:+-f \${${name}_format}}"
eval "${name}_flags=\${${name}_flags:-'-s ${_ups} -l ${_logfile} -i ${_interval} -p ${_pidbase} ${_format}'}"
required_dirs="%%STATEDIR%%"
pidfile="%%STATEDIR%%/${_pidbase}.pid"
command="${_prefix}/bin/upslog"
run_rc_command "$1"

View file

@ -18,6 +18,7 @@
@sample %%ETCDIR%%/upsmon.conf.sample
@sample %%ETCDIR%%/upssched.conf.sample
@sample %%EXAMPLESDIR%%/newsyslog.sample etc/newsyslog.conf.d/nut.conf
@sample %%EXAMPLESDIR%%/nut_upslog.sample
@sample %%EXAMPLESDIR%%/syslog.sample etc/syslog.d/nut
%%USB%%etc/devd/nut-usb.conf
bin/nut-scanner

View file

@ -1,6 +1,6 @@
PORTNAME= nut
PORTVERSION= 2.8.0
PORTREVISION= 7
PORTREVISION= 8
CATEGORIES= sysutils
MASTER_SITES= http://www.networkupstools.org/source/${PORTVERSION:R}/
@ -142,6 +142,7 @@ post-install:
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
${INSTALL_DATA} ${PATCHDIR}/nut.syslog ${STAGEDIR}${EXAMPLESDIR}/syslog.sample
${INSTALL_DATA} ${PATCHDIR}/nut.newsyslog ${STAGEDIR}${EXAMPLESDIR}/newsyslog.sample
${INSTALL_DATA} ${PATCHDIR}/nut_upslog.sample ${STAGEDIR}${EXAMPLESDIR}/nut_upslog.sample
${MKDIR} ${STAGEDIR}/var/log/nut
@${RM} ${STAGEDIR}${PREFIX}/etc/nut/solaris-init/nut
@${RMDIR} ${STAGEDIR}${PREFIX}/etc/nut/solaris-init

View file

@ -0,0 +1,52 @@
#!/bin/sh
# Authored by vvd@unislabs.com.
# PROVIDE: nut_upslog
# REQUIRE: NETWORKING nut
# BEFORE: LOGIN
# KEYWORD: shutdown
. /etc/rc.subr
case $0 in
/etc/rc*)
# during boot (shutdown) $0 is /etc/rc (/etc/rc.shutdown),
# so get the name of the script from $_file
name=$_file
;;
*)
name=$0
;;
esac
name=${name##*/}
rcvar=${name}_enable
load_rc_config "${name}"
# Define these nut_upslog* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
# /etc/rc.conf.d/nut_upslog
#
# If you want to log several different UPSes:
# ln -s nut_upslog /usr/local/etc/rc.d/NAME
# then set variables NAME_enable, NAME_ups, NAME_pidbase, NAME_logfile and etc.
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
#
eval "${rcvar}=\${${rcvar}:-'NO'}"
eval "_prefix=\${${name}_prefix:-'/usr/local'}"
eval "_logfile=\${${name}_logfile:-'/var/log/nut/ups.log'}"
eval "_interval=\${${name}_interval:-'300'}"
eval "_ups=\${${name}_ups:-'myups@localhost'}"
eval "_pidbase=\${${name}_pidbase:-'upslog'}"
eval "_format=\${${name}_format:+-f \${${name}_format}}"
eval "${name}_flags=\${${name}_flags:-'-s ${_ups} -l ${_logfile} -i ${_interval} -p ${_pidbase} ${_format}'}"
required_dirs="%%STATEDIR%%"
pidfile="%%STATEDIR%%/${_pidbase}.pid"
command="${_prefix}/bin/upslog"
run_rc_command "$1"

View file

@ -18,6 +18,7 @@
@sample %%ETCDIR%%/upsmon.conf.sample
@sample %%ETCDIR%%/upssched.conf.sample
@sample %%EXAMPLESDIR%%/newsyslog.sample etc/newsyslog.conf.d/nut.conf
@sample %%EXAMPLESDIR%%/nut_upslog.sample
@sample %%EXAMPLESDIR%%/syslog.sample etc/syslog.d/nut
%%USB%%etc/devd/nut-usb.conf
bin/nut-scanner