diff options
author | Ted Trask <ttrask01@yahoo.com> | 2015-07-26 16:57:34 -0400 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2015-07-26 16:57:34 -0400 |
commit | 1118fb0052d0cd9a84c824a5068ee6edaf9b289b (patch) | |
tree | bb885fcaa31b231bf060fe5c23ec8b50d652435e | |
parent | 6c9429c3fe217430daaeb26cbbf75f383a62b6da (diff) | |
download | acf-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.lua | 4 | ||||
-rw-r--r-- | logfiles-model.lua | 68 |
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 () |