From patchwork Tue Jan 7 13:40:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [4/5] fff-nodewatcher: Consolidate code in nodewatcher.d/10-systemdata.sh From: Adrian Schmutzler X-Patchwork-Id: 1262 Message-Id: <20200107134024.1755-4-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Tue, 7 Jan 2020 14:40:23 +0100 This consolidates the code in nodewatcher.d/10-systemdata.sh by: - Slightly reordering data retrieval - Moving XML node assembly to corresponding data retrieval, making the whole file easier to read - Changing some if statements to shorter binary condition shortcuts - Reduce the number of variables by merging some code into the XML node assembly Signed-off-by: Adrian Schmutzler Reviewed-by: Fabian Bläse --- src/packages/fff/fff-nodewatcher/Makefile | 2 +- .../usr/lib/nodewatcher.d/10-systemdata.sh | 107 ++++++++---------- 2 files changed, 50 insertions(+), 59 deletions(-) diff --git a/src/packages/fff/fff-nodewatcher/Makefile b/src/packages/fff/fff-nodewatcher/Makefile index e4a07983..19dd9cd1 100644 --- a/src/packages/fff/fff-nodewatcher/Makefile +++ b/src/packages/fff/fff-nodewatcher/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-nodewatcher -PKG_RELEASE:=57 +PKG_RELEASE:=58 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) diff --git a/src/packages/fff/fff-nodewatcher/files/usr/lib/nodewatcher.d/10-systemdata.sh b/src/packages/fff/fff-nodewatcher/files/usr/lib/nodewatcher.d/10-systemdata.sh index a61e1e57..f4a6980e 100755 --- a/src/packages/fff/fff-nodewatcher/files/usr/lib/nodewatcher.d/10-systemdata.sh +++ b/src/packages/fff/fff-nodewatcher/files/usr/lib/nodewatcher.d/10-systemdata.sh @@ -3,7 +3,7 @@ # License; GPL v3 SCRIPT_STATUS_FILE=$(uci get nodewatcher.@script[0].status_text_file) -SCRIPT_VERSION="57" +SCRIPT_VERSION="58" debug() { (>&2 echo "$1") @@ -11,28 +11,31 @@ debug() { debug "$(date): Collecting basic system status data" +SYSTEM_DATA="online" + hostname="$(cat /proc/sys/kernel/hostname)" mac=$(awk '{ mac=toupper($1); gsub(":", "", mac); print mac }' /sys/class/net/br-mesh/address 2>/dev/null) [ "$hostname" = "OpenWrt" ] && hostname="$mac" [ "$hostname" = "FFF" ] && hostname="$mac" +SYSTEM_DATA="$SYSTEM_DATA$hostname" + description="$(uci -q get fff.system.description)" -if [ -n "$description" ]; then - description="" -fi +[ -n "$description" ] && SYSTEM_DATA="$SYSTEM_DATA" + latitude="$(uci -q get fff.system.latitude)" longitude="$(uci -q get fff.system.longitude)" if [ -n "$longitude" -a -n "$latitude" ]; then - geo="$latitude$longitude"; + SYSTEM_DATA="$SYSTEM_DATA$latitude$longitude" fi + position_comment="$(uci -q get fff.system.position_comment)" -if [ -n "$position_comment" ]; then - position_comment="" -fi +[ -n "$position_comment" ] && SYSTEM_DATA="$SYSTEM_DATA" + contact="$(uci -q get fff.system.contact)" -if [ -n "$contact" ]; then - contact="$contact" -fi +[ -n "$contact" ] && SYSTEM_DATA="$SYSTEM_DATA$contact" + uptime=$(awk '{ printf ""$1""$2"" }' /proc/uptime) +SYSTEM_DATA="$SYSTEM_DATA$uptime" memory=$(awk ' /^MemTotal/ { printf ""$2"" } @@ -40,36 +43,34 @@ memory=$(awk ' /^Buffers/ { printf ""$2"" } /^MemFree/ { printf ""$2"" } ' /proc/meminfo) +SYSTEM_DATA="$SYSTEM_DATA$memory" + cpu=$(awk -F': ' ' /model/ { printf ""$2"" } /system type/ { printf ""$2"" } /platform/ { printf ""$2"" } ' /proc/cpuinfo) -model="$(cat /var/sysinfo/model)" -local_time="$(date +%s)" +SYSTEM_DATA="$SYSTEM_DATA$cpu" + +SYSTEM_DATA="$SYSTEM_DATA$(cat /var/sysinfo/model)" + +SYSTEM_DATA="$SYSTEM_DATA$(date +%s)" + load=$(awk '{ printf ""$3""$4"" }' /proc/loadavg) +SYSTEM_DATA="$SYSTEM_DATA$load" debug "$(date): Collecting version information" -batman_adv_version=$(cat /sys/module/batman_adv/version) -kernel_version=$(uname -r) -if [ -x /usr/bin/fastd ]; then - fastd_version="$(/usr/bin/fastd -v | awk '{ print $2 }')" -fi -nodewatcher_version=$SCRIPT_VERSION -if [ -x /usr/sbin/babeld ]; then - babel_version="$(/usr/sbin/babeld -V 2>&1)" -fi +SYSTEM_DATA="$SYSTEM_DATA$(cat /sys/module/batman_adv/version)" +SYSTEM_DATA="$SYSTEM_DATA$(uname -r)" +SYSTEM_DATA="$SYSTEM_DATA$SCRIPT_VERSION" -if [ -f "$SCRIPT_STATUS_FILE" ]; then - status_text="$(cat "$SCRIPT_STATUS_FILE")" +if [ -x /usr/bin/fastd ]; then + SYSTEM_DATA="$SYSTEM_DATA$(/usr/bin/fastd -v | awk '{ print $2 }')" fi -# Checks if fastd is running -if pidof fastd >/dev/null ; then - vpn_active="1" -else - vpn_active="0" +if [ -x /usr/sbin/babeld ]; then + SYSTEM_DATA="$SYSTEM_DATA$(/usr/sbin/babeld -V 2>&1)" fi # example for /etc/openwrt_release: @@ -80,8 +81,8 @@ fi #DISTRIB_TARGET="atheros/generic" #DISTRIB_DESCRIPTION="OpenWrt Attitude Adjustment 12.09-rc1" . /etc/openwrt_release -distname=$DISTRIB_ID -distversion=$DISTRIB_RELEASE +SYSTEM_DATA="$SYSTEM_DATA$DISTRIB_ID" +SYSTEM_DATA="$SYSTEM_DATA$DISTRIB_RELEASE" # example for /etc/firmware_release: #FIRMWARE_VERSION="95f36685e7b6cbf423f02cf5c7f1e785fd4ccdae-dirty" @@ -89,34 +90,24 @@ distversion=$DISTRIB_RELEASE #OPENWRT_CORE_REVISION="35298" #OPENWRT_FEEDS_PACKAGES_REVISION="35298" . /etc/firmware_release +SYSTEM_DATA="$SYSTEM_DATA$FIRMWARE_VERSION" +SYSTEM_DATA="$SYSTEM_DATA$BUILD_DATE" +SYSTEM_DATA="$SYSTEM_DATA$OPENWRT_CORE_REVISION" +SYSTEM_DATA="$SYSTEM_DATA$OPENWRT_FEEDS_PACKAGES_REVISION" -SYSTEM_DATA="online" -SYSTEM_DATA=$SYSTEM_DATA"$status_text" -SYSTEM_DATA=$SYSTEM_DATA"$hostname" -SYSTEM_DATA=$SYSTEM_DATA"${description}" -SYSTEM_DATA=$SYSTEM_DATA"${geo}" -SYSTEM_DATA=$SYSTEM_DATA"${position_comment}" -SYSTEM_DATA=$SYSTEM_DATA"${contact}" -SYSTEM_DATA=$SYSTEM_DATA"$(uci -q get "system.@system[0].hood")" -SYSTEM_DATA=$SYSTEM_DATA"$(uci -q get "system.@system[0].hoodid")" -SYSTEM_DATA=$SYSTEM_DATA"$distname" -SYSTEM_DATA=$SYSTEM_DATA"$distversion" -SYSTEM_DATA=$SYSTEM_DATA"$cpu" -SYSTEM_DATA=$SYSTEM_DATA"$model" -SYSTEM_DATA=$SYSTEM_DATA"$memory" -SYSTEM_DATA=$SYSTEM_DATA"$load" -SYSTEM_DATA=$SYSTEM_DATA"$uptime" -SYSTEM_DATA=$SYSTEM_DATA"$local_time" -SYSTEM_DATA=$SYSTEM_DATA"$batman_adv_version" -SYSTEM_DATA=$SYSTEM_DATA"$kernel_version" -SYSTEM_DATA=$SYSTEM_DATA"$fastd_version" -SYSTEM_DATA=$SYSTEM_DATA"$nodewatcher_version" -SYSTEM_DATA=$SYSTEM_DATA"$babel_version" -SYSTEM_DATA=$SYSTEM_DATA"$FIRMWARE_VERSION" -SYSTEM_DATA=$SYSTEM_DATA"$BUILD_DATE" -SYSTEM_DATA=$SYSTEM_DATA"$OPENWRT_CORE_REVISION" -SYSTEM_DATA=$SYSTEM_DATA"$OPENWRT_FEEDS_PACKAGES_REVISION" -SYSTEM_DATA=$SYSTEM_DATA"$vpn_active" +debug "$(date): Collecting hood information and additional status data" + +SYSTEM_DATA="$SYSTEM_DATA$(uci -q get "system.@system[0].hood")" +SYSTEM_DATA="$SYSTEM_DATA$(uci -q get "system.@system[0].hoodid")" + +if [ -s "$SCRIPT_STATUS_FILE" ]; then + SYSTEM_DATA="$SYSTEM_DATA$(cat "$SCRIPT_STATUS_FILE")" +fi + +# Checks if fastd is running +vpn_active=0 +pidof fastd >/dev/null && vpn_active=1 +SYSTEM_DATA="$SYSTEM_DATA$vpn_active" echo -n "$SYSTEM_DATA"