summaryrefslogtreecommitdiffstats
path: root/logfiles-model.lua
diff options
context:
space:
mode:
authorNatanael Copa <natanael.copa@gmail.com>2007-11-16 10:40:44 +0000
committerNatanael Copa <natanael.copa@gmail.com>2007-11-16 10:40:44 +0000
commit18b960e4e4420c05277d77891953e058e4a3a239 (patch)
treed23a19eaec5354a726429ce03a8dc29f43571072 /logfiles-model.lua
parent0aa2eb7019c98c10263a022e942d4ba95e289261 (diff)
downloadacf-alpine-baselayout-18b960e4e4420c05277d77891953e058e4a3a239.tar.bz2
acf-alpine-baselayout-18b960e4e4420c05277d77891953e058e4a3a239.tar.xz
use posix.dir() rather than popen("find ...")
git-svn-id: svn://svn.alpinelinux.org/acf/alpine-baselayout/trunk@318 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'logfiles-model.lua')
-rw-r--r--logfiles-model.lua55
1 files changed, 35 insertions, 20 deletions
diff --git a/logfiles-model.lua b/logfiles-model.lua
index 0cf58f5..03b92ba 100644
--- a/logfiles-model.lua
+++ b/logfiles-model.lua
@@ -20,28 +20,43 @@ local function file_info ( path )
return lastmod,size,fileinuseresult
end
-local function list_files ( path )
- local listed_files = {}
- local open_files = {}
- split = require("split")
- local files = io.popen("find " .. path .. " -type f | sort")
+-- function to recursively inserts all filenames in a dir into an array
+function recursedir(path, filearray)
+ local k,v
+ for k,v in pairs(posix.dir(path) or {}) do
+ -- we ignore files that begins with a '.'
+ if not string.match(v, "^%.") then
+ local f = path .. "/" .. v
+ if (posix.stat(f).type == "directory") then
+ recursedir(f, filearray)
+ else
+ table.insert(filearray, f)
+ end
+ end
+ end
+end
- table.insert ( listed_files , cfe{inuse="Delete", save="Save", view="View", size="Size", lastmod="Last Modified", name="File"} )
+local function list_files ( ... )
+ local listed_files = { cfe{inuse="Delete", save="Save", view="View",
+ size="Size", lastmod="Last Modified", name="File"} }
+ local open_files = {}
+-- split = require("split")
+ local files = {}
+ local k,v
- if ( files ) then
- local f = files:read("*a") or "unknown"
- for k,v in pairs(split("%s", f)) do
- if v ~= "" then
- local lastmod,size,fileinuseresult = file_info(v)
- if ( fileinuseresult == "Delete" ) then
- del="/delete?name=" .. v
- else
- del=nil
- end
- table.insert ( listed_files , cfe{inuse=fileinuseresult, del=del, save="/download?name=" .. v, view="/view?name=" .. v, size=size, lastmod=lastmod, name=v, type="", id=k} )
- end
+ -- generate a singe table with all the files
+ for k,v in pairs{...} do
+ recursedir(v, files)
+ end
+
+ for k,v in pairs(files) do
+ local lastmod,size,fileinuseresult = file_info(v)
+ if ( fileinuseresult == "Delete" ) then
+ del="/delete?name=" .. v
+ else
+ del=nil
end
- files:close()
+ table.insert ( listed_files , cfe{inuse=fileinuseresult, del=del, save="/download?name=" .. v, view="/view?name=" .. v, size=size, lastmod=lastmod, name=v, type="", id=k} )
end
return listed_files
end
@@ -86,7 +101,7 @@ local function checkfileforview ( path )
end
get = function (self)
- return list_files( "/var/log /tmp/squid/log" )
+ return list_files( "/var/log", "/tmp/squid/log" )
end
delete = function (self,filetodelete)