summaryrefslogtreecommitdiffstats
path: root/logfiles-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2008-06-02 15:56:37 +0000
committerTed Trask <ttrask01@yahoo.com>2008-06-02 15:56:37 +0000
commit3fb4985ae7cd7d5c8fc874ec03c5c0ad7c2d8456 (patch)
tree71cc0dc4e56853f93988330e118d32444825bbd1 /logfiles-model.lua
parenta280c3b1faa2847b6d4f850a55d0cd4ea8453283 (diff)
downloadacf-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.lua107
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
-