-
-
- $(cat /proc/sys/kernel/hostname)
-
-
-EOF
+ return macs
+end
-echo "$(cat /proc/sys/kernel/hostname)
"
+io.write("Content-type: text/html\n\n")
+io.write("\n")
+io.write("")
+io.write("")
+io.write("")
+io.write("" .. escape_html(hostname) .. "")
+io.write("")
+io.write("")
-echo ""
+io.write("" .. escape_html(hostname) .. "
")
+io.write("")
-echo "Model: $model" | escape_html
-echo "Firmware release: $(cat /lib/gluon/release | escape_html)"
-echo
+io.write("Model: " .. escape_html(model) .. "\n")
+io.write("Firmware release: " .. escape_html(release) .. "\n\n")
-uptime | sed 's/^ \+//' | escape_html
-echo
+io.write(escape_html(util.trim(sys.exec("uptime | sed 's/^ \+//'"))) .. "\n\n")
+io.write(escape_html(sys.exec("ip address show dev br-client")) .. "\n")
+io.write(escape_html(sys.exec("free -m")) .. "\n")
+io.write(escape_html(sys.exec("df /rom /overlay")))
+io.write("
")
-ip address show dev br-client | escape_html
-echo
+io.write("Neighbours
")
-free -m | escape_html
-echo
+local interfaces = util.split(util.trim(util.exec("iw dev | grep IBSS -B 5 | grep Interface | cut -d' ' -f2")))
-df /rom /overlay | escape_html
+for _, ifname in ipairs(interfaces) do
+ io.write("" .. escape_html(ifname) .. "
")
+ io.write("")
-echo "
"
+ io.write(escape_html(sys.exec("iw dev " .. ifname .. " link")) .. "\n")
-echo "Neighbours
"
+ for _, line in ipairs(util.split(util.exec("iw dev " .. ifname .. " station dump"))) do
+ local mac = line:match("^Station (.*) %(on ")
+ if mac then
+ io.write("Station " .. mac .. " (on " .. escape_html(ifname) .. ")\n")
+ else
+ io.write(escape_html(line) .. "\n")
+ end
+ end
+ io.write("
")
+end
-iw dev | grep IBSS -B 5 | grep Interface | cut -d' ' -f2 | while read if
-do
- echo "$if
"
- echo ""
+io.write("")
+io.write("")
+io.write("")
diff --git a/package/gluon-status-page/files/lib/gluon/status-page/www/status.js b/package/gluon-status-page/files/lib/gluon/status-page/www/status.js
new file mode 100644
index 00000000..e17102d0
--- /dev/null
+++ b/package/gluon-status-page/files/lib/gluon/status-page/www/status.js
@@ -0,0 +1,9 @@
+function update_node(id, ip, hostname) {
+ var el = document.getElementById(id);
+
+ if (!el)
+ return;
+
+ el.href = "http://[" + ip + "]/";
+ el.textContent += " (" + hostname + ")";
+}