local util = require("luci.util")
local sys = require("luci.sys")
-local fs = require("luci.fs")
+local fs = require("nixio.fs")
local uci = require("luci.model.uci").cursor()
local sections = uci:get_all("luci_statistics")
return dir
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 )
for k in pairs(table) do
return true
end
function Instance._scan( self )
- local dirs = fs.dir( self:_mkpath() )
+ local dirs = self:_ls()
if not dirs then
return
end
for _, dir in ipairs(dirs) do
if dir ~= "." and dir ~= ".." and
- fs.stat(self:_mkpath(dir)).type == "directory"
+ fs.stat(self:_mkpath(dir)).type == "dir"
then
local plugin = dir:gsub("%-.+$", "")
if not self._plugins[plugin] then
for plugin, instances in pairs( self._plugins ) do
- local dirs = fs.dir( self:_mkpath() )
+ local dirs = self:_ls()
if type(dirs) == "table" then
for i, dir in ipairs(dirs) 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
for i, file in ipairs(dirs) do
#!/bin/sh /etc/rc.common
START=79
+boot() {
+ ### prepare publisher
+ if ! uci get lucid.rrdimg >/dev/null 2>/dev/null; then
+ uci batch <<-EOF
+set lucid.rrdimg=DirectoryPublisher
+set lucid.rrdimg.name='Statistics Images'
+set lucid.rrdimg.physical=/tmp/rrdimg
+set lucid.rrdimg.virtual=/rrdimg
+set lucid.rrdimg.domain=''
+
+add_list lucid.http.publisher=rrdimg
+add_list lucid.https.publisher=rrdimg
+
+commit lucid
+EOF
+ /etc/init.d/lucid restart
+ fi
+
+ start
+}
+
start() {
### replace shipped config with symlink
if [ ! -L /etc/collectd.conf ]; then
/usr/bin/stat-genconfig > /var/etc/collectd.conf
### prepare rrdimg directory
- if [ ! -L /www/rrdimg ]; then
- imagepath="$(uci get luci_statistics.rrdtool.image_path)"
- ln -s ${imagepath:-/tmp/rrdimg}/ /www/rrdimg
+ if [ "$(uci get luci_statistics.rrdtool.image_path 2>/dev/null)" != "$(uci get lucid.rrdimg.physical 2>/dev/null)" ]; then
+ uci set lucid.rrdimg.physical=$(uci get luci_statistics.rrdtool.image_path)
+ uci commit lucid
+ /etc/init.d/lucid restart
fi
### flush LuCI index cache