From fb354ee8afb21d5f09721a8e7b9df7169e7183fd Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Wed, 17 Sep 2008 19:40:31 +0000 Subject: Modified logfiles to add grep capability. git-svn-id: svn://svn.alpinelinux.org/acf/alpine-baselayout/trunk@1472 ab2d0c66-481e-0410-8bed-d214d4d58bed --- logfiles-model.lua | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'logfiles-model.lua') 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 () -- cgit v1.2.3