* Added initial version of RPC info API
[project/luci.git] / module / rpc-core / src / controller / rpc / luciinfo.lua
diff --git a/module/rpc-core/src/controller/rpc/luciinfo.lua b/module/rpc-core/src/controller/rpc/luciinfo.lua
new file mode 100644 (file)
index 0000000..8d10fa8
--- /dev/null
@@ -0,0 +1,35 @@
+module("ffluci.controller.rpc.luciinfo", package.seeall)
+
+function action_index()
+       local uci = ffluci.model.uci.StateSession()
+
+       ffluci.http.textheader()
+       
+       -- General
+       print("luciinfo.api=1")
+       print("luciinfo.version=" .. tostring(ffluci.__version__))
+       
+       -- Sysinfo
+       local s, m, r = ffluci.sys.sysinfo()
+       local dr = ffluci.sys.net.defaultroute()
+       dr = dr and ffluci.sys.net.hexip4(dr.Gateway) or ""
+       local l1, l5, l15 = ffluci.sys.loadavg()
+       
+       print("sysinfo.system=" .. sanitize(s))
+       print("sysinfo.cpu=" .. sanitize(m))
+       print("sysinfo.ram=" .. sanitize(r))
+       print("sysinfo.hostname=" .. sanitize(ffluci.sys.hostname()))
+       print("sysinfo.load1=" .. tostring(l1))
+       print("sysinfo.load5=" .. tostring(l5))
+       print("sysinfo.load15=" .. tostring(l15))
+       print("sysinfo.defaultgw=" .. dr)
+
+       
+       -- Freifunk
+       local ff = uci:show("freifunk", true) or ""
+       print(ff)
+end
+
+function sanitize(val)
+       return val:gsub("\n", "\t")
+end
\ No newline at end of file