applications/luci-statistics: adept datatree class to nixio.fs api

This commit is contained in:
Jo-Philipp Wich 2009-06-27 15:01:50 +00:00
parent 6bc9c000e8
commit 6411c89b4c

View file

@ -17,7 +17,7 @@ module("luci.statistics.datatree", package.seeall)
local util = require("luci.util") local util = require("luci.util")
local sys = require("luci.sys") local sys = require("luci.sys")
local fs = require("luci.fs") local fs = require("nixio.fs")
local uci = require("luci.model.uci").cursor() local uci = require("luci.model.uci").cursor()
local sections = uci:get_all("luci_statistics") local sections = uci:get_all("luci_statistics")
@ -50,6 +50,19 @@ function Instance._mkpath( self, plugin, pinstance )
return dir return dir
end end
function Instance._ls( self, ... )
local ditr = fs.dir(self:_mkpath(...))
if ditr then
local dirs = { }
while true do
local d = ditr()
if not d then break end
dirs[#dirs+1] = d
end
return dirs
end
end
function Instance._notzero( self, table ) function Instance._notzero( self, table )
for k in pairs(table) do for k in pairs(table) do
return true return true
@ -59,7 +72,7 @@ function Instance._notzero( self, table )
end end
function Instance._scan( self ) function Instance._scan( self )
local dirs = fs.dir( self:_mkpath() ) local dirs = self:_ls()
if not dirs then if not dirs then
return return
end end
@ -72,7 +85,7 @@ function Instance._scan( self )
for _, dir in ipairs(dirs) do for _, dir in ipairs(dirs) do
if dir ~= "." and dir ~= ".." and if dir ~= "." and dir ~= ".." and
fs.stat(self:_mkpath(dir)).type == "directory" fs.stat(self:_mkpath(dir)).type == "dir"
then then
local plugin = dir:gsub("%-.+$", "") local plugin = dir:gsub("%-.+$", "")
if not self._plugins[plugin] then if not self._plugins[plugin] then
@ -83,7 +96,7 @@ function Instance._scan( self )
for plugin, instances in pairs( self._plugins ) do for plugin, instances in pairs( self._plugins ) do
local dirs = fs.dir( self:_mkpath() ) local dirs = self:_ls()
if type(dirs) == "table" then if type(dirs) == "table" then
for i, dir in ipairs(dirs) do for i, dir in ipairs(dirs) do
@ -101,7 +114,7 @@ function Instance._scan( self )
for instance, data_instances in pairs( instances ) do for instance, data_instances in pairs( instances ) do
dirs = fs.dir( self:_mkpath( plugin, instance ) ) dirs = self:_ls(plugin, instance)
if type(dirs) == "table" then if type(dirs) == "table" then
for i, file in ipairs(dirs) do for i, file in ipairs(dirs) do