summaryrefslogtreecommitdiffstats
path: root/health-model.lua
diff options
context:
space:
mode:
authorMika Havela <mika.havela@gmail.com>2007-12-22 09:18:24 +0000
committerMika Havela <mika.havela@gmail.com>2007-12-22 09:18:24 +0000
commitd93688f0d12c5c7c9f35d4746eef58bac11a144a (patch)
treea6e5b82eb5694d9c82599808b13e61242ecb0660 /health-model.lua
parent4062108ee8796ab9f64f05d55cd48352399cd34c (diff)
downloadacf-alpine-baselayout-d93688f0d12c5c7c9f35d4746eef58bac11a144a.tar.bz2
acf-alpine-baselayout-d93688f0d12c5c7c9f35d4746eef58bac11a144a.tar.xz
Display general healt on the system
git-svn-id: svn://svn.alpinelinux.org/acf/alpine-baselayout/trunk@447 ab2d0c66-481e-0410-8bed-d214d4d58bed
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