blob: 68d39f668b85bb58c3c17032fe53cc9e83bda386 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#!/bin/sh /etc/rc.common
2# Copyright © 2012 OpenWrt.org
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7START=87
8STOP=23
9USE_PROCD=1
10
11DEFAULT=/etc/default/nut
12UPSCGI_C=/var/etc/nut/hosts.conf
13UPSCGI_S=/var/etc/nut/upsset.conf
14
15nut_upscgi_upsset() {
16 local cfg="$1"
17 local enable
18
19 config_get_bool enable "$cfg" enable 0
20
21 if [ "$enable" -eq 1 ]; then
22 ln -sf /etc/nut/upsset.conf.enable "$UPSCGI_S"
23 else
24 ln -sf /etc/nut/upsset.conf.disable "$UPSCGI_S"
25 fi
26}
27
28nut_upscgi_add() {
29 local cfg="$1"
30 local upsname
31 local hostname
32 local port
33 local displayname
34
35 config_get upsname "$cfg" upsname
36 config_get hostname "$cfg" hostname localhost
37 config_get port "$cfg" port
38 config_get pass "$cfg" password
39 system="$upsname@$hostname"
40 if [ -n "$port" ]; then
41 system="$system:$port";
42 fi
43 config_get displayname "$cfg" displayname
44 echo "MONITOR $system \"$displayname\"" >> "$UPSCGI_C"
45}
46
47service_reload() {
48 mkdir -m 0755 -p "$(dirname "$UPSCGI_C")"
49 rm -f "$UPSCGI_C"
50 rm -f "$UPSCGI_S"
51
52 config_load nut_cgi
53
54 config_foreach nut_upscgi_add host
55 config_foreach nut_upscgi_upsset upsset
56
57 [ -s "$UPSCGI_C" ] && chmod 640 "$UPSCGI_C"
58}
59
60start_service() {
61 service_reload
62}
63
64reload_service() {
65 service_reload
66}
67
68stop_service() {
69 rm -f "$UPSCGI_C"
70 rm -f "$UPSCGI_S"
71 ln -sf /etc/nut/upsset.conf.disable "$UPSCGI_S"
72}
73
74service_triggers() {
75 procd_add_reload_trigger "nut_cgi"
76}