Comparison

core/configmanager.lua @ 6716:2b78754b0f1c

configmanager: Rename variable to avoid name conflicts [luacheck]
author Matthew Wild <mwild1@gmail.com>
date Mon, 18 May 2015 19:06:34 +0100
parent 6715:03a283aa679e
child 6717:4fecfc81dac1
comparison
equal deleted inserted replaced
6715:03a283aa679e 6716:2b78754b0f1c
119 119
120 -- Built-in Lua parser 120 -- Built-in Lua parser
121 do 121 do
122 local pcall = _G.pcall; 122 local pcall = _G.pcall;
123 parsers.lua = {}; 123 parsers.lua = {};
124 function parsers.lua.load(data, config_file, config) 124 function parsers.lua.load(data, config_file, config_table)
125 local env; 125 local env;
126 -- The ' = true' are needed so as not to set off __newindex when we assign the functions below 126 -- The ' = true' are needed so as not to set off __newindex when we assign the functions below
127 env = setmetatable({ 127 env = setmetatable({
128 Host = true, host = true, VirtualHost = true, 128 Host = true, host = true, VirtualHost = true,
129 Component = true, component = true, 129 Component = true, component = true,
137 }); 137 });
138 138
139 rawset(env, "__currenthost", "*") -- Default is global 139 rawset(env, "__currenthost", "*") -- Default is global
140 function env.VirtualHost(name) 140 function env.VirtualHost(name)
141 name = nameprep(name); 141 name = nameprep(name);
142 if rawget(config, name) and rawget(config[name], "component_module") then 142 if rawget(config_table, name) and rawget(config_table[name], "component_module") then
143 error(format("Host %q clashes with previously defined %s Component %q, for services use a sub-domain like conference.%s", 143 error(format("Host %q clashes with previously defined %s Component %q, for services use a sub-domain like conference.%s",
144 name, config[name].component_module:gsub("^%a+$", { component = "external", muc = "MUC"}), name, name), 0); 144 name, config_table[name].component_module:gsub("^%a+$", { component = "external", muc = "MUC"}), name, name), 0);
145 end 145 end
146 rawset(env, "__currenthost", name); 146 rawset(env, "__currenthost", name);
147 -- Needs at least one setting to logically exist :) 147 -- Needs at least one setting to logically exist :)
148 set(config, name or "*", "defined", true); 148 set(config_table, name or "*", "defined", true);
149 return function (config_options) 149 return function (config_options)
150 rawset(env, "__currenthost", "*"); -- Return to global scope 150 rawset(env, "__currenthost", "*"); -- Return to global scope
151 for option_name, option_value in pairs(config_options) do 151 for option_name, option_value in pairs(config_options) do
152 set(config, name or "*", option_name, option_value); 152 set(config_table, name or "*", option_name, option_value);
153 end 153 end
154 end; 154 end;
155 end 155 end
156 env.Host, env.host = env.VirtualHost, env.VirtualHost; 156 env.Host, env.host = env.VirtualHost, env.VirtualHost;
157 157
158 function env.Component(name) 158 function env.Component(name)
159 name = nameprep(name); 159 name = nameprep(name);
160 if rawget(config, name) and rawget(config[name], "defined") and not rawget(config[name], "component_module") then 160 if rawget(config_table, name) and rawget(config_table[name], "defined") and not rawget(config_table[name], "component_module") then
161 error(format("Component %q clashes with previously defined Host %q, for services use a sub-domain like conference.%s", 161 error(format("Component %q clashes with previously defined Host %q, for services use a sub-domain like conference.%s",
162 name, name, name), 0); 162 name, name, name), 0);
163 end 163 end
164 set(config, name, "component_module", "component"); 164 set(config_table, name, "component_module", "component");
165 -- Don't load the global modules by default 165 -- Don't load the global modules by default
166 set(config, name, "load_global_modules", false); 166 set(config_table, name, "load_global_modules", false);
167 rawset(env, "__currenthost", name); 167 rawset(env, "__currenthost", name);
168 local function handle_config_options(config_options) 168 local function handle_config_options(config_options)
169 rawset(env, "__currenthost", "*"); -- Return to global scope 169 rawset(env, "__currenthost", "*"); -- Return to global scope
170 for option_name, option_value in pairs(config_options) do 170 for option_name, option_value in pairs(config_options) do
171 set(config, name or "*", option_name, option_value); 171 set(config_table, name or "*", option_name, option_value);
172 end 172 end
173 end 173 end
174 174
175 return function (module) 175 return function (module)
176 if type(module) == "string" then 176 if type(module) == "string" then
177 set(config, name, "component_module", module); 177 set(config_table, name, "component_module", module);
178 return handle_config_options; 178 return handle_config_options;
179 end 179 end
180 return handle_config_options(module); 180 return handle_config_options(module);
181 end 181 end
182 end 182 end