diff options
author | Ted Trask <ttrask01@yahoo.com> | 2015-11-20 21:46:04 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2015-11-20 21:46:04 +0000 |
commit | 92baed49c0b6780fbd55ebb2e0fb9b1ee13e220e (patch) | |
tree | 1032c944e2030d464f3384fdec47c89bd44ab5b7 | |
parent | c653804d7ca2c0b6c2c60b58f6cc41a6eb8b1519 (diff) | |
download | acf-alpine-baselayout-92baed49c0b6780fbd55ebb2e0fb9b1ee13e220e.tar.bz2 acf-alpine-baselayout-92baed49c0b6780fbd55ebb2e0fb9b1ee13e220e.tar.xz |
Better error handling for view/tail/download and fix download to use proper cfe for input
-rw-r--r-- | logfiles-controller.lua | 11 | ||||
-rw-r--r-- | logfiles-model.lua | 26 |
2 files changed, 22 insertions, 15 deletions
diff --git a/logfiles-controller.lua b/logfiles-controller.lua index 54548be..b4c1cc4 100644 --- a/logfiles-controller.lua +++ b/logfiles-controller.lua @@ -18,10 +18,13 @@ mymodule.view = function (self) end mymodule.download = function (self) - local filestatus = mymodule.view(self) - local filecontent = filestatus.value.filecontent - filecontent.label = posix.basename(filestatus.value.filename.value) - return filecontent + local filedetails = mymodule.view(self) + local filecontent = filedetails.value.filecontent + if filecontent then + filecontent.type = "raw" + filecontent.label = posix.basename(filedetails.value.filename.value) + end + return filedetails end mymodule.tail = function (self) diff --git a/logfiles-model.lua b/logfiles-model.lua index fb19ec1..bf6aa4d 100644 --- a/logfiles-model.lua +++ b/logfiles-model.lua @@ -94,31 +94,34 @@ mymodule.get_filedetails = function(self, clientdata) break end end - local file = retval.value.filename.value if success then + local file = retval.value.filename.value 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) - for n,v in pairs(filedetails.value) do - if n ~= "filename" then - retval.value[n] = v + + local filedetails = modelfunctions.getfiledetails(file) + 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 - end - if filedetails.errtxt then - retval.errtxt = filedetails.errtxt else - do_grep(retval.value.filecontent, retval.value.grep.value) + retval.errtxt = "Invalid log file" end return retval end 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.filename = cfe({ label="File name", 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) @@ -126,6 +129,7 @@ mymodule.tail = function(self, clientdata) retval.value.filesize = cfe({ value="0", label="File size" }) retval.value.filecontent = cfe({ type="longtext", label="File content" }) + retval.value.filename.errtxt = "File not found" local available_files = mymodule.get() for i,file in ipairs(available_files.value) do if ( file.value.filename.value == retval.value.filename.value ) then |