diff options
author | Ted Trask <ttrask01@yahoo.com> | 2008-09-17 19:40:31 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2008-09-17 19:40:31 +0000 |
commit | fb354ee8afb21d5f09721a8e7b9df7169e7183fd (patch) | |
tree | e6c19b4a3858f363bf9f5664e6c33fe1244b12bd /logfiles-model.lua | |
parent | 54d9a100593d103aab724327a7763c24dbf0eaff (diff) | |
download | acf-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.lua | 22 |
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 () |