diff options
author | Ted Trask <ttrask01@yahoo.com> | 2008-06-02 15:56:37 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2008-06-02 15:56:37 +0000 |
commit | 3fb4985ae7cd7d5c8fc874ec03c5c0ad7c2d8456 (patch) | |
tree | 71cc0dc4e56853f93988330e118d32444825bbd1 /logfiles-model.lua | |
parent | a280c3b1faa2847b6d4f850a55d0cd4ea8453283 (diff) | |
download | acf-alpine-baselayout-3fb4985ae7cd7d5c8fc874ec03c5c0ad7c2d8456.tar.bz2 acf-alpine-baselayout-3fb4985ae7cd7d5c8fc874ec03c5c0ad7c2d8456.tar.xz |
Modified logfiles to use cfe's more properly.
git-svn-id: svn://svn.alpinelinux.org/acf/alpine-baselayout/trunk@1192 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'logfiles-model.lua')
-rw-r--r-- | logfiles-model.lua | 107 |
1 files changed, 44 insertions, 63 deletions
diff --git a/logfiles-model.lua b/logfiles-model.lua index f00f7f4..6ef6a1d 100644 --- a/logfiles-model.lua +++ b/logfiles-model.lua @@ -1,9 +1,7 @@ --- acf model for displaying logfiles recusivly +-- acf model for displaying logfiles module (..., package.seeall) require("fs") --- no initializer in model - use controller.init for that - -- Function to get detailed information on a specific file. local function file_info ( path ) -- Check if file is in use @@ -11,20 +9,15 @@ local function file_info ( path ) local size = st.size local lastmod = st.mtime local file_inuse = io.popen("fuser " .. path ) - local fileinuseresult = file_inuse:read("*a") or "unkown" + local fileinuseresult = file_inuse:read("*a") or "unknown" file_inuse:close() - if fileinuseresult == "" then - fileinuseresult = "Delete" - fileinuseurl = "/delete?name=" .. path - else - fileinuseresult = "in use" - fileinuseurl = nil - end - return lastmod,size,fileinuseresult,fileinuseurl + fileinuseresult = (fileinuseresult == "") + return lastmod,size,fileinuseresult end --- Function to recursively inserts all filenames in a dir into an array +-- Function to recursively insert all filenames in a dir into an array local function recursedir(path, filearray) + filearray = filearray or {} local k,v for k,v in pairs(posix.dir(path) or {}) do -- Ignore files that begins with a '.' @@ -38,6 +31,7 @@ local function recursedir(path, filearray) end end end + return filearray end -- Function to list available files for view/delete @@ -46,76 +40,63 @@ local function list_files ( ... ) local open_files = {} local files = {} local k,v - -- Generate a singe table with all the files + -- Generate a single table with all the files for k,v in pairs{...} do recursedir(v, files) end -- Loop through each file and present its info for k,v in pairs(files) do -- Get info on this specific file and put it in a table - local lastmod,size,fileinuseresult,fileinuseurl = file_info(v) - table.insert ( listed_files , cfe{inuse=fileinuseresult, del=fileinuseurl, save="/download?name=" .. v, - view="/view?name=" .. v, size=size, lastmod=lastmod, name=v, type="", id=k} ) + local lastmod,size,fileinuseresult = file_info(v) + local filename = cfe({ value=v, label="File name" }) + local filesize = cfe({ value=size, label="File size" }) + local mtime = cfe({ value=lastmod, label="File date" }) + local inuse = cfe({ type="boolean", value=fileinuseresult, label="File in use" }) + table.insert ( listed_files , cfe({ type="group", value={filename=filename, filesize=filesize, mtime=mtime, + inuse=inuse, label="File details"} }) ) + end + table.sort(listed_files, function (a,b) return (a.value.filename.value < b.value.filename.value) end ) + return cfe({ type="list", value=listed_files, label="Log files" }) +end + +get_filedetails = function (path) + local filedetails + local available_files = get() + for i,file in ipairs(available_files.value) do + if ( file.value.filename.value == path ) then + filedetails = file + filedetails.value.filecontent = cfe({ type="longtext", value=fs.read_file(path), label="File content" }) + break + end end - table.sort(listed_files, function (a,b) return (a.name < b.name) end ) - return listed_files + return filedetails +end + + +get = function () + -- These folders (and their subfolers) are going to be listed + return list_files( "/var/log", "/tmp/squid/log" ) end -- Function to check if a file is deletable, and if it is, then delete it. -local function checkfilefordelete ( filetodelete ) - local deletedfile = {} - deletedfile = {value=nil, type="text", option=nil, errtxt="File '" .. filetodelete .. "' has not been deleted!"} +delete = function (filetodelete) + local deletedfile = cfe({ label="Delete result", value="File '" .. filetodelete .. "' has not been deleted!" }) -- Get a list of files that could be deleted local available_files = get() - for k,v in pairs(available_files) do - if ( available_files[k].name == filetodelete ) then + for i,file in ipairs(available_files.value) do + if ( file.value.filename.value == filetodelete ) then -- Check if file is deletable (or in use) - if ( available_files[k].del ) then + if ( not file.value.inuse.value ) then local status, err = os.remove( filetodelete ) if not ( err ) then - deletedfile = {value="File '" .. filetodelete .. "' has been successfully deleted!", type="text"} + deletedfile.value = "File '"..filetodelete.."' has been successfully deleted!" else - deletedfile = {value=nil, type="text", option=nil, errtxt=err} + deletedfile.errtxt = err end - else end + break end end return deletedfile end -local function checkfileforview ( path ) - local filecontent = nil - local available_files = get() - for k,v in pairs(available_files) do - if ( available_files[k].name == path ) then - filecontent = path - end - end - return filecontent -end - -function get_filedetails(self,path) - local filedetails = {} - if (checkfileforview(path)) then - filedetails.details = fs.stat(path) - filedetails.value = fs.read_file(path) - filedetails.name = basename(path) - end - return filedetails -end - - -get = function (self) - -- These folders (and their subfolers) are going to be listed - return list_files( "/var/log", "/tmp/squid/log" ) -end - -delete = function (self,filetodelete) - return checkfilefordelete( filetodelete ) -end - -view = function (self,filetoview) - return checkfileforview( filetoview ) -end - |