summaryrefslogtreecommitdiffstats
path: root/shorewall-model.lua
diff options
context:
space:
mode:
authorMika Havela <mika.havela@gmail.com>2007-11-28 17:23:26 +0000
committerMika Havela <mika.havela@gmail.com>2007-11-28 17:23:26 +0000
commitf9975a98a1e3404c2f75ed093f8de47f89b339e5 (patch)
treeb50c0c0a375067d72c10deb0ffac74a2336e0ed7 /shorewall-model.lua
parent73bd0a6d99c0bdfc1db5432706a3aa577617b10c (diff)
downloadacf-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.lua60
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
+