mirror of
https://github.com/openwrt/packages.git
synced 2026-05-31 06:51:51 +08:00
0c88118ad4
Prompted by https://github.com/openwrt/luci/pull/8420#issuecomment-4071252681 we update upsmon configs to ensure they are correct according to upstream. We reorder the options so that they match upstream documentation at <https://networkupstools.org/docs/man/upsmon.conf.html> to be sure we have not missed any items. While at it, we add configuration options from the upstream documentation that are not currently present in the UCI configs. Some years ago upstream changed the names the primary/secondary UPS system/monitor from master/slave to primary/secondary. It is uncertain how much longer these deprecated names will be accepted by NUT. Therefore update naming to match upstream documentation and configuration. See <https://networkupstools.org/docs/man/upsmon.html>, <https://networkupstools.org/docs/man/upsmon.conf.html>, and <https://networkupstools.org/docs/man/upsd.users.html>. At the same time, prompted by https://github.com/openwrt/packages/pull/28875#issuecomment-4079307540 we simplify the configuration and add checks to avoid bad configs due to misspellings/typos of configuation options by users. A sample config config upsmon 'upsmon' option notifycmd '/usr/bin/logger -t nut-monitor-exec ' config monitor option type primary option upsname upsname option hostname localhost option username upsuser option password upspassword config notifications 'ONLINE' option message "UPS %s is on line power" option flag "SYSLOG" config notifications 'ONBATT' option message "UPS %s is on battery power" option flag "SYSLOG+EXEC" In order to iterate through the notifications, we use named 'notifications' sections and compare the section name to list of notification events defined by NUT. If they don't match, warn during initscript startup. Signed-off-by: Daniel F. Dickinson <dfdpublic@wildtechgarden.ca>
49 lines
971 B
Bash
49 lines
971 B
Bash
#!/bin/sh
|
|
|
|
. "${IPKG_INSTROOT}"/lib/functions.sh
|
|
|
|
REMOVEDEFAULTNOTIFY=0
|
|
SKIPADDSYSLOG=0
|
|
SKIPADDEXEC=0
|
|
|
|
upsmon() {
|
|
local cfg="$1"
|
|
local val
|
|
|
|
config_get val "$cfg" defaultnotify
|
|
if [ -n "$val" ]; then
|
|
if echo "$val" |grep -q "IGNORE"; then
|
|
REMOVEDEFAULTNOTIFY=1
|
|
else
|
|
SKIPADDSYSLOG=1
|
|
if echo "$val" |grep -q "EXEC"; then
|
|
SKIPADDEXEC=1
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
config_load nut_monitor
|
|
config_foreach upsmon upsmon
|
|
|
|
uci set nut_monitor.@upsmon[-1]=upsmon
|
|
uci set nut_monitor.@upsmon[-1].notifycmd=/usr/bin/nut-sendmail-notify
|
|
|
|
if [ "$REMOVEDEFAULTNOTIFY" = "1" ]; then
|
|
uci delete nut_monitor.@upsmon[-1].defaultnotify || true
|
|
fi
|
|
|
|
if [ "$SKIPADDEXEC" != "1" ]; then
|
|
if [ "$SKIPADDSYSLOG" != "1" ]; then
|
|
uci set nut_monitor.@upsmon[-1].defaultnotify="SYSLOG+EXEC"
|
|
else
|
|
uci set nut_monitor.@upsmon[-1].defaultnotify="EXEC"
|
|
fi
|
|
else
|
|
if [ "$SKIPADDSYSLOG" != "1" ]; then
|
|
uci set nut_monitor.@upsmon[-1].defaultnotify="SYSLOG"
|
|
fi
|
|
fi
|
|
|
|
uci commit nut_monitor
|