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-controller.lua | 4 ++-- logfiles-model.lua | 22 +++++++++++++++++++--- logfiles-tail-html.lsp | 5 ++++- logfiles-view-html.lsp | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 logfiles-view-html.lsp diff --git a/logfiles-controller.lua b/logfiles-controller.lua index 2af76ee..58fb0f0 100644 --- a/logfiles-controller.lua +++ b/logfiles-controller.lua @@ -13,7 +13,7 @@ delete = function (self) end view = function (self) - return self.model.get_filedetails(self.clientdata.name or "") + return self.model.get_filedetails(self.clientdata.name or "", self.clientdata.grep) end download = function (self) @@ -29,5 +29,5 @@ tail = function (self) if self.clientdata.offset then self.conf.viewtype = "ajax" end - return self.model.tail(self.clientdata.name, self.clientdata.offset) + return self.model.tail(self.clientdata.name, self.clientdata.offset, self.clientdata.grep) end 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 () diff --git a/logfiles-tail-html.lsp b/logfiles-tail-html.lsp index b4ef807..6bfe26d 100644 --- a/logfiles-tail-html.lsp +++ b/logfiles-tail-html.lsp @@ -9,7 +9,7 @@ $.ajaxSetup({cache:false}); $.getJSON( '<%= page_info.script .. page_info.prefix .. page_info.controller .. "/" .. page_info.action %>', - {name:'<%= form.value.filename.value %>', offset:currentoffset}, + {name:'<% io.write(form.value.filename.value) if form.value.grep.value ~= "" then io.write("',grep:'"..form.value.grep.value) end %>', offset:currentoffset}, function(data) { data.value.filecontent.value = data.value.filecontent.value.split("\n").join("
\n"); $("#filecontent").append(data.value.filecontent.value).scrollTop(999999999); @@ -34,6 +34,9 @@ <% displayitem(form.value.filename) displayitem(form.value.filesize) +if form.value.grep.value ~= "" then + displayitem(form.value.grep) +end %> +<% if form.value.filecontent.errtxt then %>

<%= string.gsub(form.value.filecontent.errtxt, "\n", "
") %>

<% end %> + +<% if form.type == "form" then %> +

Save

+
Submit and save above changes
+<% end %> + -- cgit v1.2.3