summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-02-08 06:59:45 +0000
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-02-08 06:59:45 +0000
commitb9ebf814656849f6d8b0ba96a0d24dc09597d4aa (patch)
treeaa31887c4a3b935102504940c9c86f51c849ce4b
parentae493bcd1ae74d4a79aa03e4eccd8bbd90c06ca8 (diff)
downloadawall-b9ebf814656849f6d8b0ba96a0d24dc09597d4aa.tar.bz2
awall-b9ebf814656849f6d8b0ba96a0d24dc09597d4aa.tar.xz
corrected processing order of module contents
-rw-r--r--awall/init.lua17
1 files changed, 11 insertions, 6 deletions
diff --git a/awall/init.lua b/awall/init.lua
index 645f3d6..04c2fc4 100644
--- a/awall/init.lua
+++ b/awall/init.lua
@@ -30,11 +30,15 @@ function loadmodules(path)
achains = {}
local function readmetadata(mod)
- for name, target in pairs(mod.export or {}) do events[name] = target end
+ local export = mod.export or {}
+ for name, target in pairs(export) do events[name] = target end
+
for name, opts in pairs(mod.achains or {}) do
assert(not achains[name])
achains[name] = opts
end
+
+ return awall.util.keys(export)
end
readmetadata(model)
@@ -45,19 +49,20 @@ function loadmodules(path)
local modules = {}
for modfile in lfs.dir((path or '/usr/share/lua/5.1')..'/awall/modules') do
if stringy.endswith(modfile, '.lua') then
- table.insert(modules, string.sub(modfile, 1, -5))
+ table.insert(modules, 'awall.modules.'..string.sub(modfile, 1, -5))
end
end
table.sort(modules)
+
+ local imported = {}
for i, name in ipairs(modules) do
- local fname = 'awall.modules.'..name
- require(fname)
- readmetadata(package.loaded[fname])
+ require(name)
+ awall.util.extend(imported, readmetadata(package.loaded[name]))
end
lfs.chdir(cdir)
- events['%modules'] = {before=modules}
+ events['%modules'] = {before=imported}
procorder = awall.dependency.order(events)
end