Skip to content

Commit

Permalink
sysutils/nut*: Alternate upslog support for multiple UPSs
Browse files Browse the repository at this point in the history
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
  • Loading branch information
cschuber committed Aug 28, 2022
1 parent dec4ecc commit 0b5e039
Show file tree
Hide file tree
Showing 6 changed files with 110 additions and 2 deletions.
3 changes: 2 additions & 1 deletion sysutils/nut-devel/Makefile
@@ -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}/
Expand Down Expand Up @@ -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>
52 changes: 52 additions & 0 deletions sysutils/nut-devel/files/nut_upslog.sample
@@ -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"
1 change: 1 addition & 0 deletions sysutils/nut-devel/pkg-plist
Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion sysutils/nut/Makefile
@@ -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}/

Expand Down Expand Up @@ -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
Expand Down
52 changes: 52 additions & 0 deletions sysutils/nut/files/nut_upslog.sample
@@ -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"
1 change: 1 addition & 0 deletions sysutils/nut/pkg-plist
Expand Up @@ -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
Expand Down

0 comments on commit 0b5e039

Please sign in to comment.