diff options
Diffstat (limited to 'core/configmanager.lua')
-rw-r--r-- | core/configmanager.lua | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/core/configmanager.lua b/core/configmanager.lua index 54fb0a9a..6b181443 100644 --- a/core/configmanager.lua +++ b/core/configmanager.lua @@ -13,7 +13,7 @@ local setmetatable, loadfile, pcall, rawget, rawset, io, error, dofile, type, p setmetatable, loadfile, pcall, rawget, rawset, io, error, dofile, type, pairs, table, string.format; -local eventmanager = require "core.eventmanager"; +local fire_event = prosody and prosody.events.fire_event or function () end; module "configmanager" @@ -30,10 +30,11 @@ local host_mt = { __index = global_config }; -- When key not found in section, check key in global's section function section_mt(section_name) return { __index = function (t, k) - local section = rawget(global_config, section_name); - if not section then return nil; end - return section[k]; - end }; + local section = rawget(global_config, section_name); + if not section then return nil; end + return section[k]; + end + }; end function getconfig() @@ -72,7 +73,7 @@ function load(filename, format) local ok, err = parsers[format].load(f:read("*a"), filename); f:close(); if ok then - eventmanager.fire_event("config-reloaded", { filename = filename, format = format }); + fire_event("config-reloaded", { filename = filename, format = format }); end return ok, "parser", err; end @@ -112,16 +113,20 @@ do function parsers.lua.load(data, filename) local env; -- The ' = true' are needed so as not to set off __newindex when we assign the functions below - env = setmetatable({ Host = true, host = true, VirtualHost = true, Component = true, component = true, - Include = true, include = true, RunScript = dofile }, { __index = function (t, k) - return rawget(_G, k) or - function (settings_table) - config[__currenthost or "*"][k] = settings_table; - end; - end, - __newindex = function (t, k, v) - set(env.__currenthost or "*", "core", k, v); - end}); + env = setmetatable({ + Host = true, host = true, VirtualHost = true, + Component = true, component = true, + Include = true, include = true, RunScript = dofile }, { + __index = function (t, k) + return rawget(_G, k) or + function (settings_table) + config[__currenthost or "*"][k] = settings_table; + end; + end, + __newindex = function (t, k, v) + set(env.__currenthost or "*", "core", k, v); + end + }); rawset(env, "__currenthost", "*") -- Default is global function env.VirtualHost(name) |