summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2015-07-26 16:57:34 -0400
committerTed Trask <ttrask01@yahoo.com>2015-07-26 16:57:34 -0400
commit1118fb0052d0cd9a84c824a5068ee6edaf9b289b (patch)
treebb885fcaa31b231bf060fe5c23ec8b50d652435e
parent6c9429c3fe217430daaeb26cbbf75f383a62b6da (diff)
downloadacf-alpine-baselayout-1118fb0052d0cd9a84c824a5068ee6edaf9b289b.tar.bz2
acf-alpine-baselayout-1118fb0052d0cd9a84c824a5068ee6edaf9b289b.tar.xz
Modify logfile view and tail to properly use handle_clientdata
Fixed a minor bug in tail where CFE contained 'fileoffset' but action looked for 'offset'
-rw-r--r--logfiles-controller.lua4
-rw-r--r--logfiles-model.lua68
2 files changed, 42 insertions, 30 deletions
diff --git a/logfiles-controller.lua b/logfiles-controller.lua
index 10d0a55..54548be 100644
--- a/logfiles-controller.lua
+++ b/logfiles-controller.lua
@@ -14,7 +14,7 @@ mymodule.delete = function (self)
end
mymodule.view = function (self)
- return self.model.get_filedetails(self.clientdata.filename or "", self.clientdata.grep)
+ return self.model.get_filedetails(self, self.clientdata)
end
mymodule.download = function (self)
@@ -25,7 +25,7 @@ mymodule.download = function (self)
end
mymodule.tail = function (self)
- return self.model.tail(self.clientdata.filename, self.clientdata.offset, self.clientdata.grep)
+ return self.model.tail(self, self.clientdata)
end
return mymodule
diff --git a/logfiles-model.lua b/logfiles-model.lua
index 04c3386..fb19ec1 100644
--- a/logfiles-model.lua
+++ b/logfiles-model.lua
@@ -80,65 +80,77 @@ local do_grep = function(filecontent, grep)
end
end
-mymodule.get_filedetails = function (path, grep)
+mymodule.get_filedetails = function(self, clientdata)
+ local retval = cfe({ type="group", value={}, label="Logfile details" })
+ retval.value.filename = cfe({ label="File name", key=true })
+ retval.value.grep = cfe({ label="Grep", key=true })
+ self.handle_clientdata(retval, clientdata)
+
local success = false
local available_files = mymodule.get()
for i,file in ipairs(available_files.value) do
- if file.value.filename.value == path then
+ if file.value.filename.value == retval.value.filename.value then
success = true
break
end
end
- local file = path
+ local file = retval.value.filename.value
if success then
- local st = fs.stat(path)
+ local st = fs.stat(file)
while st.type == "link" do
st = fs.stat(posix.readlink(st.path))
end
file = st.path
end
local filedetails = modelfunctions.getfiledetails(file, function(filename) return success end)
- filedetails.value.filename.value = path
- if not filedetails.errtxt then
- do_grep(filedetails.value.filecontent, grep)
+ for n,v in pairs(filedetails.value) do
+ if n ~= "filename" then
+ retval.value[n] = v
+ end
+ end
+ if filedetails.errtxt then
+ retval.errtxt = filedetails.errtxt
+ else
+ do_grep(retval.value.filecontent, retval.value.grep.value)
end
- filedetails.value.grep = cfe({ value=grep or "", label="Grep" })
- return filedetails
+ return retval
end
-mymodule.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" })
+mymodule.tail = function(self, clientdata)
+ local retval = cfe({ type="group", value={}, label="Tail Logfile" })
+ retval.value.filename = cfe({ label="File name", errtxt="File not found", key=true })
+ retval.value.offset = cfe({ value="0", label="File offset", key=true })
+ retval.value.grep = cfe({ label="Grep", key=true })
+ self.handle_clientdata(retval, clientdata)
+
+ retval.value.filesize = cfe({ value="0", label="File size" })
+ retval.value.filecontent = cfe({ type="longtext", label="File content" })
local available_files = mymodule.get()
for i,file in ipairs(available_files.value) do
- if ( file.value.filename.value == path ) then
- filename.errtxt = nil
- local f = io.open(path)
- if tonumber(offset) then
- fileoffset.value = offset
- offset = tonumber(offset)
+ if ( file.value.filename.value == retval.value.filename.value ) then
+ retval.value.filename.errtxt = nil
+ local f = io.open(retval.value.filename.value)
+ if tonumber(retval.value.offset.value) then
+ local offset = tonumber(retval.value.offset.value)
if offset < 0 then
f:seek("end", offset)
else
f:seek("set", offset)
end
- filecontent.value = f:read("*all")
- filesize.value = f:seek()
+ retval.value.filecontent.value = f:read("*all")
+ retval.value.filesize.value = f:seek()
else
- filesize.value = f:seek("end")
- fileoffset.value = filesize.value
+ retval.value.filesize.value = f:seek("end")
+ retval.value.offset.value = retval.value.filesize.value
end
f:close()
- do_grep(filecontent, grep)
+ do_grep(retval.value.filecontent, retval.value.grep.value)
break
end
end
-
- return cfe({ type="group", value={filename=filename, filecontent=filecontent, filesize=filesize, fileoffset=fileoffset, grep=filegrep}, label="Tail File" })
+
+ return retval
end
mymodule.get = function ()