Software /
code /
prosody
Comparison
core/configmanager.lua @ 3515:bb494c3aa364
configmanager: Allow VirtualHost/Component definitions to be followed by a table of config options
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 08 Oct 2010 03:19:20 +0100 |
parent | 3384:b7600dd7cd42 |
child | 3573:f31fa6520a4b |
comparison
equal
deleted
inserted
replaced
3514:fdae08713c67 | 3515:bb494c3aa364 |
---|---|
135 name, config[name].core.component_module:gsub("^%a+$", { component = "external", muc = "MUC"}), name, name), 0); | 135 name, config[name].core.component_module:gsub("^%a+$", { component = "external", muc = "MUC"}), name, name), 0); |
136 end | 136 end |
137 rawset(env, "__currenthost", name); | 137 rawset(env, "__currenthost", name); |
138 -- Needs at least one setting to logically exist :) | 138 -- Needs at least one setting to logically exist :) |
139 set(name or "*", "core", "defined", true); | 139 set(name or "*", "core", "defined", true); |
140 return function (config_options) | |
141 rawset(env, "__currenthost", "*"); -- Return to global scope | |
142 for option_name, option_value in pairs(config_options) do | |
143 set(name or "*", "core", option_name, option_value); | |
144 end | |
145 end; | |
140 end | 146 end |
141 env.Host, env.host = env.VirtualHost, env.VirtualHost; | 147 env.Host, env.host = env.VirtualHost, env.VirtualHost; |
142 | 148 |
143 function env.Component(name) | 149 function env.Component(name) |
144 if rawget(config, name) and rawget(config[name].core, "defined") and not rawget(config[name].core, "component_module") then | 150 if rawget(config, name) and rawget(config[name].core, "defined") and not rawget(config[name].core, "component_module") then |
147 end | 153 end |
148 set(name, "core", "component_module", "component"); | 154 set(name, "core", "component_module", "component"); |
149 -- Don't load the global modules by default | 155 -- Don't load the global modules by default |
150 set(name, "core", "load_global_modules", false); | 156 set(name, "core", "load_global_modules", false); |
151 rawset(env, "__currenthost", name); | 157 rawset(env, "__currenthost", name); |
158 local function handle_config_options(config_options) | |
159 rawset(env, "__currenthost", "*"); -- Return to global scope | |
160 for option_name, option_value in pairs(config_options) do | |
161 set(name or "*", "core", option_name, option_value); | |
162 end | |
163 end | |
152 | 164 |
153 return function (module) | 165 return function (module) |
154 if type(module) == "string" then | 166 if type(module) == "string" then |
155 set(name, "core", "component_module", module); | 167 set(name, "core", "component_module", module); |
168 return handle_config_options; | |
156 end | 169 end |
170 return handle_config_options(module); | |
157 end | 171 end |
158 end | 172 end |
159 env.component = env.Component; | 173 env.component = env.Component; |
160 | 174 |
161 function env.Include(file) | 175 function env.Include(file) |