Split workers into dedicated files
[khatus.git] / bin / khatus_sensor_net_addr_io
diff --git a/bin/khatus_sensor_net_addr_io b/bin/khatus_sensor_net_addr_io
new file mode 100755 (executable)
index 0000000..48b9b07
--- /dev/null
@@ -0,0 +1,40 @@
+#! /bin/sh
+
+set -e
+
+ip -s addr \
+| awk '
+    /^[0-9]+:/ {
+        sub(":$", "", $1)
+        sub(":$", "", $2)
+        sequence = $1
+        interface = $2
+        interfaces[sequence] = interface
+    }
+
+    /^ +inet [0-9]/ {
+        sub("/[0-9]+", "", $2)
+        addr = $2
+        addrs[interface] = addr
+    }
+
+    /^ +RX: / {transfer_direction = "r"}
+    /^ +TX: / {transfer_direction = "w"}
+
+    /^ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+ *$/ {
+        io[interface, transfer_direction] = $1;
+    }
+
+    END {
+        for (seq=1; seq<=sequence; seq++) {
+            interface = interfaces[seq]
+            label = substr(interface, 1, 1)
+            if (addrs[interface]) {
+                curr_read  = io[interface, "r"]
+                curr_write = io[interface, "w"]
+                print(interface, addrs[interface], curr_write, curr_read)
+            } else {
+                print(interface)
+            }
+        }
+    }'
This page took 0.028653 seconds and 4 git commands to generate.