nut: nut-cgi: Add support for upsset
authorDaniel F. Dickinson <cshored@thecshore.com>
Mon, 27 Aug 2018 20:10:48 +0000 (16:10 -0400)
committerDaniel F. Dickinson <cshored@thecshore.com>
Wed, 29 Aug 2018 04:15:18 +0000 (00:15 -0400)
This allows config for setting variables and/or running
commands from the CGI.

Signed-off-by: Daniel F. Dickinson <cshored@thecshore.com>
net/nut/Makefile
net/nut/files/nut-cgi.init
net/nut/files/nut_cgi

index 9c18b610574505842e720b1210aada4478070a0d..a07921686c9c8942196f0c42e0d70040b76bede4 100644 (file)
@@ -329,12 +329,15 @@ define Package/nut-web-cgi/install
        $(INSTALL_CONF) ./files/add_nut_httpd_conf $(1)/etc/uci-defaults/add_nut_httpd_conf
        $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/upsstats.html.sample $(1)/etc/nut/upsstats.html
        $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/upsstats-single.html.sample $(1)/etc/nut/upsstats-single.html
-       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/upsset.conf.sample $(1)/etc/nut/upsset.conf
+       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/upsset.conf.sample $(1)/etc/nut/upsset.conf.disable
+       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/upsset.conf.sample $(1)/etc/nut/upsset.conf.enable
+       $(SED) 's/### \?//' $(1)/etc/nut/upsset.conf.enable
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_CONF) ./files/nut_cgi $(1)/etc/config/nut_cgi
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/nut-cgi.init $(1)/etc/init.d/nut-cgi
        ln -sf /var/etc/nut/hosts.conf $(1)/etc/nut/hosts.conf
+       ln -sf /var/etc/nut/upsset.conf $(1)/etc/nut/upsset.conf
 endef
 
 define Package/nut-avahi-service
index d63d98ba95d4618ae036337d95579054dc61bc83..50301ccc97e7ad04610607049b0cc4f9f8b41781 100755 (executable)
@@ -8,6 +8,20 @@ START=51
 
 DEFAULT=/etc/default/nut
 UPSCGI_C=/var/etc/nut/hosts.conf
+UPSCGI_S=/var/etc/nut/upsset.conf
+
+nut_upscgi_upsset() {
+       local cfg="$1"
+       local enable
+
+       config_get_bool enable "$cfg" enable 0
+
+       [ $enable -eq 1 ] && {
+               ln -sf /etc/nut/upsset.conf.enable "$UPSCGI_S"
+       } || {
+               ln -sf /etc/nut/upsset.conf.disable "$UPSCGI_S"
+       }
+}
 
 nut_upscgi_add() {
        local cfg="$1"
@@ -30,15 +44,20 @@ nut_upscgi_add() {
 
 start() {
        rm -f $UPSCGI_C
+       rm -f "$UPSCGI_S"
+       mkdir -m 0755 -p "$(dirname "$UPSCGI_C")"
 
        config_load nut_cgi
 
        config_foreach nut_upscgi_add host
+       config_foreach nut_upscgi_upsset upsset
 
        chmod 640 /var/etc/nut/hosts.conf
 }
 
 stop() {
        rm -f $UPSCGI_C
+       rm -f "$UPSCGI_S"
+       ln -sf /etc/nut/upsset.conf.disable "$UPSCGI_S"
 }
 
index 9f0bed6fc10f42370651b2c450c8ce6b25bad7e0..dca5de07cc645d5ceedd17bbc26f24c4a70a3bbc 100644 (file)
@@ -4,3 +4,5 @@
 #      option port # optional port number
 #      option displayname "Display Name"
 
+config upsset
+       option enable 0