diff options
Diffstat (limited to 'logfiles-model.lua')
-rw-r--r-- | logfiles-model.lua | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/logfiles-model.lua b/logfiles-model.lua index 2ac4f5d..54aceee 100644 --- a/logfiles-model.lua +++ b/logfiles-model.lua @@ -76,6 +76,38 @@ get_filedetails = function (path) return filedetails end +tail = function(path, offset) + 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 available_files = 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 offset < 0 then + f:seek("end", offset) + else + f:seek("set", offset) + end + filecontent.value = f:read("*all") + filesize.value = f:seek() + else + filesize.value = f:seek("end") + fileoffset.value = filesize.value + end + f:close() + break + end + end + + return cfe({ type="group", value={filename=filename, filecontent=filecontent, filesize=filesize, fileoffset=fileoffset}, label="Tail Config file details" }) +end get = function () -- These folders (and their subfolers) are going to be listed |