diff options
author | Natanael Copa <natanael.copa@gmail.com> | 2007-11-16 10:40:44 +0000 |
---|---|---|
committer | Natanael Copa <natanael.copa@gmail.com> | 2007-11-16 10:40:44 +0000 |
commit | 18b960e4e4420c05277d77891953e058e4a3a239 (patch) | |
tree | d23a19eaec5354a726429ce03a8dc29f43571072 /logfiles-model.lua | |
parent | 0aa2eb7019c98c10263a022e942d4ba95e289261 (diff) | |
download | acf-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.lua | 55 |
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) |