[RFC] nodewatcher: consolidate uci calls
Tobias Klaus
tk+ff at meskal.net
Di Jul 4 00:37:18 CEST 2017
* this makes it easier to reuse on decentral gateways
* fix errors if nodewatcher is not run on openwrt/lede
---
.../fff/fff-nodewatcher/files/usr/sbin/nodewatcher | 29 ++++++++++++++--------
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
index f9d6e65..296b421 100755
--- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
+++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
@@ -20,6 +20,17 @@ else
. "$(dirname "$0")/nodewatcher_config"
fi
+if [ -f /etc/config/system ];then
+ description="$(uci get system. at system[0].description)"
+ latitude="$(uci get system. at system[0].latitude)"
+ longitude="$(uci get system. at system[0].longitude)"
+ position_comment="$(uci get system. at system[0].position_comment)"
+ contact="$(uci get system. at system[0].contact)"
+ hood="$(uci -q get "system. at system[0].hood")"
+else
+ . "$(dirname "$0")/system_config"
+fi
+
if [ "$SCRIPT_ERROR_LEVEL" -gt "1" ]; then
err() {
echo "$1" >> "$SCRIPT_LOGFILE"
@@ -56,20 +67,15 @@ crawl() {
#Get system data from other locations
err "$(date): Collecting basic system status data"
hostname="$(cat /proc/sys/kernel/hostname)"
- description="$(uci get system. at system[0].description)"
if [ -n "$description" ]; then
description="<description><![CDATA[$description]]></description>"
fi
- latitude="$(uci get system. at system[0].latitude)"
- longitude="$(uci get system. at system[0].longitude)"
if [ -n "$longitude" -a -n "$latitude" ]; then
geo="<geo><lat>$latitude</lat><lng>$longitude</lng></geo>";
fi
- position_comment="$(uci get system. at system[0].position_comment)"
if [ -n "$position_comment" ]; then
position_comment="<position_comment><![CDATA[$position_comment]]></position_comment>"
fi
- contact="$(uci get system. at system[0].contact)"
if [ -n "$contact" ]; then
contact="<contact>$contact</contact>"
fi
@@ -86,7 +92,7 @@ crawl() {
/system type/ { printf "<chipset>"$2"</chipset>" }
/platform/ { printf "<chipset>"$2"</chipset>" }
' /proc/cpuinfo)
- model="<model>$(cat /var/sysinfo/model)</model>"
+ test -f /var/sysinfo/model && model="<model>$(cat /var/sysinfo/model)</model>"
local_time="$(date +%s)"
load=$(awk '{ printf "<loadavg>"$3"</loadavg><processes>"$4"</processes>" }' /proc/loadavg)
@@ -117,7 +123,7 @@ crawl() {
#DISTRIB_CODENAME="attitude_adjustment"
#DISTRIB_TARGET="atheros/generic"
#DISTRIB_DESCRIPTION="OpenWrt Attitude Adjustment 12.09-rc1"
- . /etc/openwrt_release
+ test -f /etc/openwrt_release && . /etc/openwrt_release
distname=$DISTRIB_ID
distversion=$DISTRIB_RELEASE
@@ -126,7 +132,8 @@ crawl() {
#BUILD_DATE="build date: Di 29. Jan 19:33:34 CET 2013"
#OPENWRT_CORE_REVISION="35298"
#OPENWRT_FEEDS_PACKAGES_REVISION="35298"
- . /etc/firmware_release
+
+ test -f /etc/firmware_release && . /etc/firmware_release
SYSTEM_DATA="<status>online</status>"
SYSTEM_DATA=$SYSTEM_DATA"$status_text"
@@ -135,10 +142,10 @@ crawl() {
SYSTEM_DATA=$SYSTEM_DATA"${geo}"
SYSTEM_DATA=$SYSTEM_DATA"${position_comment}"
SYSTEM_DATA=$SYSTEM_DATA"${contact}"
- if [ "$(uci -q get "system. at system[0].hood")" ]
+ if [ "${hood}" ]
then
- SYSTEM_DATA=$SYSTEM_DATA"<hood>$(uci -q get "system. at system[0].hood")</hood>"
- fi
+ SYSTEM_DATA=$SYSTEM_DATA"<hood>${hood}</hood>"
+ fi
SYSTEM_DATA=$SYSTEM_DATA"<distname>$distname</distname>"
SYSTEM_DATA=$SYSTEM_DATA"<distversion>$distversion</distversion>"
SYSTEM_DATA=$SYSTEM_DATA"$cpu"
--
2.13.2
Mehr Informationen über die Mailingliste franken-dev