ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/net/nut/files/nut-cgi.init b/external/subpack/net/nut/files/nut-cgi.init
new file mode 100755
index 0000000..68d39f6
--- /dev/null
+++ b/external/subpack/net/nut/files/nut-cgi.init
@@ -0,0 +1,76 @@
+#!/bin/sh /etc/rc.common
+# Copyright © 2012 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+START=87
+STOP=23
+USE_PROCD=1
+
+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
+
+	if [ "$enable" -eq 1 ]; then
+		ln -sf /etc/nut/upsset.conf.enable "$UPSCGI_S"
+	else
+		ln -sf /etc/nut/upsset.conf.disable "$UPSCGI_S"
+	fi
+}
+
+nut_upscgi_add() {
+	local cfg="$1"
+	local upsname
+	local hostname
+	local port
+	local displayname
+
+	config_get upsname "$cfg" upsname
+	config_get hostname "$cfg" hostname localhost
+	config_get port "$cfg" port
+	config_get pass "$cfg" password
+	system="$upsname@$hostname"
+	if [ -n "$port" ]; then
+	    system="$system:$port";
+	fi
+	config_get displayname "$cfg" displayname
+	echo "MONITOR $system \"$displayname\"" >> "$UPSCGI_C"
+}
+
+service_reload() {
+	mkdir -m 0755 -p "$(dirname "$UPSCGI_C")"
+	rm -f "$UPSCGI_C"
+	rm -f "$UPSCGI_S"
+
+	config_load nut_cgi
+
+	config_foreach nut_upscgi_add host
+	config_foreach nut_upscgi_upsset upsset
+
+	[ -s "$UPSCGI_C" ] && chmod 640 "$UPSCGI_C"
+}
+
+start_service() {
+	service_reload
+}
+
+reload_service() {
+	service_reload
+}
+
+stop_service() {
+	rm -f "$UPSCGI_C"
+	rm -f "$UPSCGI_S"
+	ln -sf /etc/nut/upsset.conf.disable "$UPSCGI_S"
+}
+
+service_triggers() {
+	procd_add_reload_trigger "nut_cgi"
+}