lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

nut-monitor.init (5088B)


      1 #!/bin/sh /etc/rc.common
      2 
      3 START=60
      4 USE_PROCD=1
      5 UPSMON_C=/var/etc/nut/upsmon.conf
      6 
      7 nut_upsmon_conf() {
      8 	local cfg="$1"
      9 
     10 	echo "# Config file automatically generated from UCI config" > $UPSMON_C
     11 
     12 	config_get runas "$cfg" runas "nut"
     13 	[ -n "$runas" ] && echo "RUN_AS_USER $runas" >> $UPSMON_C
     14 
     15 	config_get val "$cfg" minsupplies 1
     16 	echo "MINSUPPLIES $val" >> $UPSMON_C
     17 
     18 	config_get val "$cfg" shutdowncmd "/sbin/halt"
     19 	echo "SHUTDOWNCMD \"$val\"" >> $UPSMON_C
     20 
     21 	config_get val "$cfg" notifycmd
     22 	[ -n "$val" ] && echo "NOTIFYCMD \"$val\"" >> $UPSMON_C
     23 
     24 	config_get val "$cfg" pollfreq 5
     25 	echo "POLLFREQ $val" >> $UPSMON_C
     26 
     27 	config_get val "$cfg" pollfreqalert 5
     28 	echo "POLLFREQALERT $val" >> $UPSMON_C
     29 
     30 	config_get val "$cfg" hostsync 15
     31 	echo "HOSTSYNC $val" >> $UPSMON_C
     32 
     33 	config_get val "$cfg" deadtime 15
     34 	echo "DEADTIME $val" >> $UPSMON_C
     35 
     36 	config_get val "$cfg" powerdownflag /var/run/killpower
     37 	echo "POWERDOWNFLAG $val" >> $UPSMON_C
     38 
     39 	config_get val "$cfg" onlinemsg
     40 	[ -n "$val" ] && echo "NOTIFYMSG ONLINE \"$val\"" >> $UPSMON_C
     41 	config_get val "$cfg" onbattmsg
     42 	[ -n "$val" ] && echo "NOTIFYMSG ONBATT \"$val\"" >> $UPSMON_C
     43 	config_get val "$cfg" lowbattmsg
     44 	[ -n "$val" ] && echo "NOTIFYMSG LOWBATT \"$val\"" >> $UPSMON_C
     45 	config_get val "$cfg" fsdmsg
     46 	[ -n "$val" ] && echo "NOTIFYMSG FSD \"$val\"" >> $UPSMON_C
     47 	config_get val "$cfg" commokmsg
     48 	[ -n "$val" ] && echo "NOTIFYMSG COMMOK \"$val\"" >> $UPSMON_C
     49 	config_get val "$cfg" commbadmsg
     50 	[ -n "$val" ] && echo "NOTIFYMSG COMMBAD \"$val\"" >> $UPSMON_C
     51 	config_get val "$cfg" shutdownmsg
     52 	[ -n "$val" ] && echo "NOTIFYMSG SHUTDOWN \"$val\"" >> $UPSMON_C
     53 	config_get val "$cfg" replbattmsg
     54 	[ -n "$val" ] && echo "NOTIFYMSG REPLBATT \"$val\"" >> $UPSMON_C
     55 	config_get val "$cfg" nocommmsg
     56 	[ -n "$val" ] && echo "NOTIFYMSG NOCOMM \"$val\"" >> $UPSMON_C
     57 	config_get val "$cfg" noparentmsg
     58 	[ -n "$val" ] && echo "NOTIFYMSG NOPARENT \"$val\"" >> $UPSMON_C
     59 
     60 	notifylist() {
     61 		local value="$1"
     62 		append optval "$value" "+"
     63 	}
     64 
     65 	setnotify() {
     66 		local cfg="$1"
     67 		local optname="$2"
     68 		local optval
     69 		config_list_foreach "$cfg" "$optname" notifylist
     70 		if [ -z "$optval" ]; then
     71 			# If no list fallback to trying option, fallback to default
     72 			config_get optval "$cfg" "$optname" "$default"
     73 			if [ -n "$optval" ]; then
     74 				echo "$optval"
     75 			else
     76 				# No default, so do the NUT default
     77 				echo "SYSLOG"
     78 			fi
     79 		else
     80 			echo "$optval"
     81 		fi
     82         }
     83 
     84 	local default optval
     85 	val=""
     86 	config_list_foreach "$cfg" defaultnotify notifylist
     87 	default="$optval"
     88 	echo "NOTIFYFLAG ONLINE $(setnotify "$cfg" onlinenotify)" >> $UPSMON_C
     89 	echo "NOTIFYFLAG ONBATT $(setnotify "$cfg" onbattnotify)" >> $UPSMON_C
     90 	echo "NOTIFYFLAG LOWBATT $(setnotify "$cfg" lowbatnotify)" >> $UPSMON_C
     91 	echo "NOTIFYFLAG FSD $(setnotify "$cfg" fsdnotify)" >> $UPSMON_C
     92 	echo "NOTIFYFLAG COMMOK $(setnotify "$cfg" commoknotify)" >> $UPSMON_C
     93 	echo "NOTIFYFLAG COMMBAD $(setnotify "$cfg" commbadnotify)" >> $UPSMON_C
     94 	echo "NOTIFYFLAG SHUTDOWN $(setnotify "$cfg" shutdownnotify)" >> $UPSMON_C
     95 	echo "NOTIFYFLAG REPLBATT $(setnotify "$cfg" repolbattnotify)" >> $UPSMON_C
     96 	echo "NOTIFYFLAG NOCOMM $(setnotify "$cfg" nocommnotify)" >> $UPSMON_C
     97 	echo "NOTIFYFLAG NOPARENT $(setnotify "$cfg" noparentnotify)" >> $UPSMON_C
     98 
     99 	config_get val "$cfg" rbwarntime 43200
    100 	echo "RBWARNTIME $val" >> $UPSMON_C
    101 
    102 	config_get val "$cfg" nocommwarntime 300
    103 	echo "NOCOMMWARNTIME $val" >> $UPSMON_C
    104 
    105 	config_get val "$cfg" finaldelay 5
    106 	echo "FINALDELAY $val" >> $UPSMON_C
    107 
    108 	config_get val "$cfg" certpath
    109 	if [ -n "$val" ]; then echo "CERTPATH $val" >> $UPSMON_C; fi
    110 
    111 	config_get_bool val "$cfg" certverify 0
    112 	if [ -n "$val" ]; then echo "CERTVERIFY $val" >> $UPSMON_C; fi
    113 
    114 	config_get_bool val "$cfg" forcessl 0
    115 	if [ -n "$val" ]; then echo "FORCESSL $val" >> $UPSMON_C; fi
    116 }
    117 
    118 nut_upsmon_add() {
    119 	local cfg="$1"
    120 	local type="$2"
    121 	local upsname
    122 	local hostname
    123 	local port
    124 	local powervalue
    125 	local username
    126 	local password
    127 	local system
    128 
    129 	# If no core config, use defaults
    130 	[ -r $UPSMON_C ] || nut_upsmon_conf ""
    131 
    132 	config_get upsname "$cfg" upsname
    133 	config_get hostname "$cfg" hostname localhost
    134 	config_get port "$cfg" port
    135 	config_get powervalue "$cfg" powervalue 1
    136 	config_get username "$cfg" username
    137 	config_get password "$cfg" password
    138 	system="$upsname@$hostname"
    139 	if [ -n "$port" ]; then
    140 	    system="$system:$port";
    141 	fi
    142 	echo "MONITOR $system $powervalue $username $password $type" >> $UPSMON_C
    143 }
    144 
    145 start_service() {
    146 	rm -f $UPSMON_C
    147 
    148 	config_load nut_monitor
    149 
    150 	config_foreach nut_upsmon_conf upsmon
    151 	config_foreach nut_upsmon_add master master
    152 	config_foreach nut_upsmon_add slave slave
    153 
    154 	[ -z "$(cat /var/etc/nut/nut.conf)" ] && echo "MODE=netclient" >>/var/etc/nut/nut.conf
    155 
    156 	chmod 640 $UPSMON_C
    157 	chmod 640 /var/etc/nut/nut.conf
    158 
    159 	[ -d /var/run/nut ] || {
    160 		mkdir -m 0750 -p /var/run/nut
    161 		chown ${runas:-root}:$(id -gn ${runas:-root}) /var/run/nut
    162 	}
    163 
    164 	chown ${runas:-root}:$(id -gn ${runas:-root}) $UPSMON_C
    165 	$DEBUG /usr/sbin/upsmon $UPSMON_OPTIONS
    166 }
    167 
    168 stop_service() {
    169 	[ -r $PID_F ] && /usr/sbin/upsmon -c stop
    170 	rm -f $UPSMON_C
    171 }
    172 
    173 reload_service() {
    174 	upsmon -c reload
    175 }