aboutsummaryrefslogtreecommitdiffstats
path: root/core/configmanager.lua
diff options
context:
space:
mode:
Diffstat (limited to 'core/configmanager.lua')
-rw-r--r--core/configmanager.lua37
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)