diff options
author | Mika Havela <mika.havela@gmail.com> | 2007-11-28 17:23:26 +0000 |
---|---|---|
committer | Mika Havela <mika.havela@gmail.com> | 2007-11-28 17:23:26 +0000 |
commit | f9975a98a1e3404c2f75ed093f8de47f89b339e5 (patch) | |
tree | b50c0c0a375067d72c10deb0ffac74a2336e0ed7 /shorewall-model.lua | |
parent | 73bd0a6d99c0bdfc1db5432706a3aa577617b10c (diff) | |
download | acf-shorewall-f9975a98a1e3404c2f75ed093f8de47f89b339e5.tar.bz2 acf-shorewall-f9975a98a1e3404c2f75ed093f8de47f89b339e5.tar.xz |
Show files and their content starting to take shape
git-svn-id: svn://svn.alpinelinux.org/acf/shorewall/trunk@383 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'shorewall-model.lua')
-rw-r--r-- | shorewall-model.lua | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/shorewall-model.lua b/shorewall-model.lua new file mode 100644 index 0000000..bf42891 --- /dev/null +++ b/shorewall-model.lua @@ -0,0 +1,60 @@ +-- shorewall model methods +module (..., package.seeall) + +local function XXXfile_info ( path ) + local file = io.popen("ls -lh " .. path ) + local file_info_result = file:read("*a") or "unknown" + file:close() + local size,lastmod = string.match(file_info_result, "^%S+%s+%S+%s+%S+%s+%S+%s+(%S+)%s+(%S+%s+%S+%s+%S+)" ) + return {lastmod=lastmod,size=size, longname=path} +end +local function file_info ( path ) + require("posix") + filedetails = posix.stat(path) + filedetails.longname = path + return filedetails +end + + +function get_status () + local f,error = io.popen("/sbin/shorewall status") + local fake = f:read("*l") + local fake = f:read("*l") + local programstatus = f:read("*l") + local programstate = f:read("*l") + f:close() + local f,error = io.popen("/sbin/shorewall version") + local programversion = f:read("*l") + f:close() + return {programversion=programversion,programstatus=programstatus,programstate=programstate} +end + + +function get_filelist () + local filepath = "/etc/shorewall/" + local listed_files = {} + local k,v + for name in posix.files(filepath) do + if not string.match(name, "^%.") and not string.match(name, "^Makefile") then + local filedetails = file_info(filepath .. name) + table.insert ( listed_files , {name=name, longname=filepath .. name, filedetails=filedetails} ) + end + end + return listed_files +end + +function get_filecontent (self, name) + local path = "/etc/shorewall/" .. name + local available_files = get_filelist() + for k,v in pairs(available_files) do + if ( available_files[k].name == name ) then + local file = io.open( path ) + local file_result = file:read("*a") or "unknown" + file:close() + local filedetails = file_info(path) + file_content = cfe{name=name, value=file_result, filedetails=filedetails} + end + end + return file_content +end + |