summaryrefslogtreecommitdiffstats
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
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
-rw-r--r--logfiles-controller.lua4
-rw-r--r--logfiles-model.lua22
-rw-r--r--logfiles-tail-html.lsp5
-rw-r--r--logfiles-view-html.lsp36
4 files changed, 61 insertions, 6 deletions
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("<br>\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
%>
</DL>
<textarea id="filecontent">
diff --git a/logfiles-view-html.lsp b/logfiles-view-html.lsp
new file mode 100644
index 0000000..a83153c
--- /dev/null
+++ b/logfiles-view-html.lsp
@@ -0,0 +1,36 @@
+<% local form, viewlibrary, page_info = ... %>
+<% require("viewfunctions") %>
+
+<% if form.type == "form" then %>
+<H1>Configuration</H1>
+<H2>Expert Configuration</H2>
+<% else %>
+<H1>View File</H1>
+<% end %>
+<H3>File Details</H3>
+<DL>
+<%
+displayitem(form.value.filename)
+displayitem(form.value.filesize)
+displayitem(form.value.mtime)
+if form.value.grep.value ~= "" then
+ displayitem(form.value.grep)
+end
+%>
+</DL>
+
+<H3>File Content</H3>
+<% if form.descr then %><P CLASS='descr'><%= string.gsub(form.descr, "\n", "<BR>") %></P><% end %>
+<% if form.errtxt then %><P CLASS='error'><%= string.gsub(form.errtxt, "\n", "<BR>") %></P><% end %>
+<form action="<%= page_info.script .. page_info.prefix .. page_info.controller .. "/" .. page_info.action %>" method="POST">
+<input type="hidden" name="filename" value="<%= form.value.filename.value %>">
+<textarea name="filecontent">
+<%= html.html_escape(form.value.filecontent.value) %>
+</textarea>
+<% if form.value.filecontent.errtxt then %><P CLASS='error'><%= string.gsub(form.value.filecontent.errtxt, "\n", "<BR>") %></P><% end %>
+
+<% if form.type == "form" then %>
+<H3>Save</H3>
+<DL><DT>Submit and save above changes</DT><DD><input class="submit" type="submit" name="<%= form.option %>" value="<%= form.option %>"></DD></DL>
+<% end %>
+</form>