summaryrefslogtreecommitdiffstats
path: root/health-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'health-model.lua')
-rw-r--r--health-model.lua62
1 files changed, 62 insertions, 0 deletions
diff --git a/health-model.lua b/health-model.lua
new file mode 100644
index 0000000..e0e2cf3
--- /dev/null
+++ b/health-model.lua
@@ -0,0 +1,62 @@
+-- acf model for displaying logfiles recusivly
+module (..., package.seeall)
+
+require("fs")
+require("date")
+
+-- ###############################################################
+-- Private functions
+local function querycmd ( cmdline )
+ local cmd = io.popen( cmdline )
+ local cmd_result = cmd:read("*a") or "unknown"
+ cmd:close()
+ return cmd_result
+end
+
+local function diskfree ( media )
+ if not (media) then media = "" end
+ local cmd = io.popen( "df -h " .. media )
+ local cmd_result = cmd:read("*a") or "unknown"
+ cmd:close()
+ return cmd_result
+end
+
+-- ###############################################################
+-- Public functions
+get_system = function (self)
+ local system = {}
+ system.uptime = querycmd("/usr/bin/uptime")
+ system.date = querycmd("/bin/date")
+ system.timezone = date.what_tz()
+ system.uname = querycmd("/bin/uname -a")
+ system.memory = querycmd("/usr/bin/free")
+ return system
+end
+
+get_storage = function (self)
+ local storage = {}
+ storage.floppycapacity = diskfree("/media/floppy")
+ storage.hdcapacity = diskfree()
+ storage.partitions = fs.read_file("/proc/partitions")
+ return storage
+end
+
+get_network = function (self)
+ local network = {}
+ network.interfaces = querycmd("/sbin/ifconfig")
+ network.routes = querycmd("/sbin/route")
+ return network
+end
+
+get_modules = function (self)
+ local modules = {}
+ modules.list = querycmd("/sbin/lsmod")
+ return modules
+end
+
+get_proc = function (self)
+ local proc = {}
+ proc.processor = fs.read_file("/proc/cpuinfo")
+ proc.memory = fs.read_file("/proc/meminfo")
+ return proc
+end