summaryrefslogtreecommitdiffstats
path: root/logfiles-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2008-09-17 19:40:31 +0000
committerTed Trask <ttrask01@yahoo.com>2008-09-17 19:40:31 +0000
commitfb354ee8afb21d5f09721a8e7b9df7169e7183fd (patch)
treee6c19b4a3858f363bf9f5664e6c33fe1244b12bd /logfiles-model.lua
parent54d9a100593d103aab724327a7763c24dbf0eaff (diff)
downloadacf-alpine-baselayout-fb354ee8afb21d5f09721a8e7b9df7169e7183fd.tar.bz2
acf-alpine-baselayout-fb354ee8afb21d5f09721a8e7b9df7169e7183fd.tar.xz
Modified logfiles to add grep capability.
git-svn-id: svn://svn.alpinelinux.org/acf/alpine-baselayout/trunk@1472 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'logfiles-model.lua')
-rw-r--r--logfiles-model.lua22
1 files changed, 19 insertions, 3 deletions
diff --git a/logfiles-model.lua b/logfiles-model.lua
index 54aceee..41c2308 100644
--- a/logfiles-model.lua
+++ b/logfiles-model.lua
@@ -60,12 +60,25 @@ local function list_files ( ... )
return cfe({ type="list", value=listed_files, label="Log files" })
end
-get_filedetails = function (path)
+local do_grep = function(filecontent, grep)
+ if grep and grep ~= "" then
+ local lines = {}
+ for line in string.gmatch(filecontent.value, "[^\n]*\n?") do
+ if string.match(line, grep) then
+ lines[#lines+1] = line
+ end
+ end
+ filecontent.value = table.concat(lines) or ""
+ end
+end
+
+get_filedetails = function (path, grep)
local filedetails
local available_files = get()
for i,file in ipairs(available_files.value) do
if ( file.value.filename.value == path ) then
filedetails = modelfunctions.getfiledetails(path)
+ do_grep(filedetails.value.filecontent, grep)
break
end
end
@@ -73,14 +86,16 @@ get_filedetails = function (path)
filedetails = modelfunctions.getfiledetails("")
filedetails.value.filename.value = path
end
+ filedetails.value.grep = cfe({ value=grep or "", label="Grep" })
return filedetails
end
-tail = function(path, offset)
+tail = function(path, offset, grep)
local filename = cfe({ value=path, label="File name", errtxt="File not found" })
local filesize = cfe({ value="0", label="File size" })
local filecontent = cfe({ type="longtext", label="File content" })
local fileoffset = cfe({ value="0", label="File offset" })
+ local filegrep = cfe({ value=grep or "", label="Grep" })
local available_files = get()
for i,file in ipairs(available_files.value) do
@@ -102,11 +117,12 @@ tail = function(path, offset)
fileoffset.value = filesize.value
end
f:close()
+ do_grep(filecontent, grep)
break
end
end
- return cfe({ type="group", value={filename=filename, filecontent=filecontent, filesize=filesize, fileoffset=fileoffset}, label="Tail Config file details" })
+ return cfe({ type="group", value={filename=filename, filecontent=filecontent, filesize=filesize, fileoffset=fileoffset, grep=filegrep}, label="Tail Config file details" })
end
get = function ()