diff options
author | Mika Havela <mika.havela@gmail.com> | 2008-03-26 14:41:22 +0000 |
---|---|---|
committer | Mika Havela <mika.havela@gmail.com> | 2008-03-26 14:41:22 +0000 |
commit | 34db03ce3b6a455a17da33bf10a8eb0165b90c2c (patch) | |
tree | aa27e055e2ec913cfea979e1c865c2f35429e931 /opennhrp-model.lua | |
download | acf-opennhrp-34db03ce3b6a455a17da33bf10a8eb0165b90c2c.tar.bz2 acf-opennhrp-34db03ce3b6a455a17da33bf10a8eb0165b90c2c.tar.xz |
First commit on opennhrp.
Only shows standard process information and shows connected peers (or what to call them).
git-svn-id: svn://svn.alpinelinux.org/acf/opennhrp/trunk@841 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'opennhrp-model.lua')
-rw-r--r-- | opennhrp-model.lua | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/opennhrp-model.lua b/opennhrp-model.lua new file mode 100644 index 0000000..ebff6a8 --- /dev/null +++ b/opennhrp-model.lua @@ -0,0 +1,84 @@ +module(..., package.seeall) + +require("fs") +require("procps") +require("getopts") +require("format") +require("daemoncontrol") +require("validator") + +local configfile = "/etc/opennhrp/opennhrp.conf" +local processname = "opennhrp" +local baseurl = "/etc/opennhrp/" + +local function get_version() + local cmd_output_result, cmd_output_error + local cmd = "/sbin/apk_version -vs " .. processname .." 2>/dev/null" + local f = io.popen( cmd ) + local cmdresult = f:read("*l") + if (cmdresult) and (#cmdresult > 0) then + cmd_output_result = string.match(cmdresult,"^%S*") or "Unknown" + else + cmd_output_error = "Program not installed" + end + f:close() + return cmd_output_result,cmd_output_error +end + +local function opennhrpctl_show() + local cmd_output_result={} + local cmd_output_result_table={} + local cmd_output_error, opennhrpstatus + local cmd = "/usr/sbin/opennhrpctl show 2>/dev/null" + local f = io.popen( cmd ) + for line in f:lines() do + if string.find(line, "^Status:") then + opennhrpstatus=line + else + table.insert(cmd_output_result, line) + end + end + f:close() + local cnt = 0 + for k,v in pairs(cmd_output_result) do + if string.find(v,"^Interface") then + cnt = cnt + 1 + cmd_output_result_table[cnt] = {} + end + if ( cnt > 0 ) and (v ~= "") then + local k = string.match(v,"^(.-):%s?.*") + cmd_output_result_table[cnt][k]=string.match(v,"^.-:%s?(.*)") + end + end + + return cmd_output_result_table,opennhrpstatus,cmd_output_error +end + +-- ################################################################################ +-- PUBLIC FUNCTIONS + + +function getstatus() + local status = {} + status.version = cfe({ name = "version", + label="Program version", + value=get_version(), + }) + status.status = cfe({ name="status", + label="Program status", + value=procps.pidof(processname), + }) + local opennhrpctl_show, opennhrpctl_status = opennhrpctl_show() + status.stats = cfe({ name="stats", + label="Programstatus reports", + value=opennhrpctl_status, + }) + status.show = cfe({ name="show", + label="Peers", + option=opennhrpctl_show, + }) + + return status +end + + |