module (..., package.seeall) -- no initializer in model - use controller.init for that local function list_files ( path ) local listed_files = {} local open_files = {} split = require("split") local files = io.popen("find " .. path .. " -type f | sort") -- local files_opened = io.popen("ls -l $( find /proc/[0-9]*/fd) | egrep 'tmp\|var' - | sed 's/ \+/ /g' | sort") opens=" ls -l $( find /proc/[0-9]*/fd 2>/dev/null) 2>/dev/null | \ egrep 'tmp\|var' - | sed 's/ \+/ /g' | \ cut -f 12" -- cut -f11 -d' ' | sort |uniq " local files_opened = io.popen(opens) if ( files ) then local f = files:read("*a") or "unknown" for k,v in pairs(split("%s", f)) do if v ~= "" then table.insert ( listed_files , cfe{date="?", name=v, size="?"} ) end end files:close() end table.insert ( listed_files , cfe{date="---", name="--- Now follows list with open files to compare agains logfile-list ---", size="---"} ) -- if ( files_opened ) then local f = files_opened:read("*a") or "unknown" -- for k,v in pairs(split("%s", f)) do table.insert ( listed_files , cfe{date="?", name=f, size="?"} ) -- end -- files_opened:close() -- end return listed_files end function list_filesx ( path ) local file, error = io.popen("find " .. path .. " -type f") if ( file == nil ) then return nil, error end local f = {} for line in file:lines() do table.insert ( f , cfe{value=line, name=line} ) end file:close() return f end local function read_file ( path ) local file = io.open(path) if ( file ) then local f = file:read("*a") or "unknown" file:close() return f else return "Cant find '" .. path .. "'" end end get = function (self,path) local logfile_folders = "/var/log /tmp/squid/log" local logfile_result = {} -- logfile_result = cfe{value=read_file(path), name=path} -- logfile_result = cfe{value=list_files(logfile_folders), name=path} logfile_result = list_files(logfile_folders) file_name = cfe{value=path, name=file_name} return logfile_result end