From 0543ad6f4f17c719e9864e1adb4f89f0e7a3f8ab Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 29 Oct 2008 03:59:37 +0000 Subject: [PATCH] * luci/app/statistics: - build datatree from rrd directory structure, allows "virtual" plugins - flush index cache on statistics reload - whitespace cleanup in config generator --- .../luasrc/statistics/datatree.lua | 26 ++++++++++++++----- .../root/etc/init.d/luci_statistics | 3 +++ .../root/usr/bin/stat-genconfig | 24 ++++++++--------- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/applications/luci-statistics/luasrc/statistics/datatree.lua b/applications/luci-statistics/luasrc/statistics/datatree.lua index 637fcf466..6a6cbd0d5 100644 --- a/applications/luci-statistics/luasrc/statistics/datatree.lua +++ b/applications/luci-statistics/luasrc/statistics/datatree.lua @@ -7,7 +7,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 $Id$ @@ -19,7 +19,7 @@ local util = require("luci.util") local sys = require("luci.sys") local fs = require("luci.fs") local uci = require("luci.model.uci").cursor() -local sections = uci:get_all( "luci_statistics" ) +local sections = uci:get_all("luci_statistics") Instance = util.class() @@ -59,13 +59,25 @@ function Instance._notzero( self, table ) end function Instance._scan( self ) - local dir = fs.dir( self._libdir ) - if not dir then + local dirs = fs.dir( self:_mkpath() ) + if not dirs then return end - for i, plugin in ipairs( dir ) do - if plugin:match("%w+.so") then - self._plugins[ plugin:gsub(".so", "") ] = { } + +-- for i, plugin in ipairs( dirs ) do +-- if plugin:match("%w+.so") then +-- self._plugins[ plugin:gsub("%.so$", "") ] = { } +-- end +-- end + + for _, dir in ipairs(dirs) do + if dir ~= "." and dir ~= ".." and + fs.stat(self:_mkpath(dir)).type == "directory" + then + local plugin = dir:gsub("%-.+$", "") + if not self._plugins[plugin] then + self._plugins[plugin] = { } + end end end diff --git a/applications/luci-statistics/root/etc/init.d/luci_statistics b/applications/luci-statistics/root/etc/init.d/luci_statistics index 55999a8f7..e4da1d5b1 100755 --- a/applications/luci-statistics/root/etc/init.d/luci_statistics +++ b/applications/luci-statistics/root/etc/init.d/luci_statistics @@ -17,6 +17,9 @@ start() { imagepath="$(uci get luci_statistics.rrdtool.image_path)" ln -s ${imagepath:-/tmp/rrdimg}/ /www/rrdimg fi + + ### flush LuCI index cache + test -f /var/luci-indexcache && rm /var/luci-indexcache } restart() { diff --git a/applications/luci-statistics/root/usr/bin/stat-genconfig b/applications/luci-statistics/root/usr/bin/stat-genconfig index b62005ce1..e179cdb34 100755 --- a/applications/luci-statistics/root/usr/bin/stat-genconfig +++ b/applications/luci-statistics/root/usr/bin/stat-genconfig @@ -9,7 +9,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 $Id$ @@ -96,15 +96,15 @@ function config_exec( c ) cmd = sections[s].cmdline - if cmd then - cmd = cmd:gsub("^%s+", ""):gsub("%s+$", "") - user = sections[s].cmduser or "nobody" - group = sections[s].cmdgroup + if cmd then + cmd = cmd:gsub("^%s+", ""):gsub("%s+$", "") + user = sections[s].cmduser or "nobody" + group = sections[s].cmdgroup - str = str .. "\t" .. key .. ' "' .. - user .. ( group and ":" .. group or "" ) .. '" "' .. - cmd:gsub('%s+', '" "') .. '"\n' - end + str = str .. "\t" .. key .. ' "' .. + user .. ( group and ":" .. group or "" ) .. '" "' .. + cmd:gsub('%s+', '" "') .. '"\n' + end end end end @@ -162,9 +162,9 @@ function config_network( c ) str = str .. "\t" .. key .. " " .. host .. "\n" end end - end - end - end + end + end + end return str .. _string( c["TimeToLive"], "TimeToLive" ) .. _string( c["CacheFlush"], "CacheFlush" ) -- 2.25.1