From b8fe93a8368223da2ca9b56f0a1ca1b1e3740cd9 Mon Sep 17 00:00:00 2001 From: Patrick Grimm Date: Mon, 14 Oct 2013 17:29:40 +0000 Subject: [PATCH 1/1] package/freifunk-common: neigh.sh: fix for missing .. as well as aligned headers --- .../package/freifunk-common/files/usr/bin/neigh.sh | 37 ++++++++++++++++------ 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/contrib/package/freifunk-common/files/usr/bin/neigh.sh b/contrib/package/freifunk-common/files/usr/bin/neigh.sh index 4c734ae22..cf4342450 100755 --- a/contrib/package/freifunk-common/files/usr/bin/neigh.sh +++ b/contrib/package/freifunk-common/files/usr/bin/neigh.sh @@ -2,21 +2,40 @@ . /usr/share/libubox/jshn.sh +VARS="localIP:Local remoteIP:Remote validityTime:vTime linkQuality:LQ neighborLinkQuality:NLQ linkCost:Cost" + for HOST in 127.0.0.1 ::1;do json_init json_load "$(echo /links|nc ${HOST} 9090)" if json_is_a links array;then - echo "LocalIP RemoteIP vTime LQ NLQ Cost" json_select links - i=1 - while json_is_a ${i} object;do - json_select ${i} - json_get_vars localIP remoteIP validityTime linkQuality neighborLinkQuality linkCost - echo "${localIP} ${remoteIP} ${validityTime} ${linkQuality} ${neighborLinkQuality} ${linkCost}" - json_select - i=$(( i + 1 )) + for v in ${VARS};do + eval _${v%:*}=0 + done + for j in 0 1;do + case ${j} in 1) + for v in ${VARS};do + eval printf \"%-\${_${v%:*}}s \" ${v#*:} + done + echo + ;;esac + i=1;while json_is_a ${i} object;do + json_select ${i} + json_get_vars $(for v in ${VARS};do echo ${v%:*};done) + case ${j} in 0) + for v in ${VARS};do + eval "test \${_${v%:*}} -lt \${#${v%:*}} && _${v%:*}=\${#${v%:*}}" + done + ;;*) + for v in ${VARS};do + eval printf \"%-\${_${v%:*}}s \" \$${v%:*} + done + echo + ;;esac + json_select .. + i=$(( i + 1 )) + done done fi echo done - -- 2.11.0