Comparison

core/modulemanager.lua @ 713:2afd6d9e21cd

modulemanager: Check for syntax errors before reloading a module
author Waqas Hussain <waqas20@gmail.com>
date Tue, 13 Jan 2009 23:16:39 +0500
parent 710:56f6c115bc69
child 733:b1aedec00661
comparison
equal deleted inserted replaced
712:56410c0cd846 713:2afd6d9e21cd
162 162
163 function reload(host, name, ...) 163 function reload(host, name, ...)
164 local mod = modulemap[host] and modulemap[host][name]; 164 local mod = modulemap[host] and modulemap[host][name];
165 if not mod then return nil, "module-not-loaded"; end 165 if not mod then return nil, "module-not-loaded"; end
166 166
167 local _mod, err = loadfile(plugin_dir.."mod_"..name..".lua"); -- checking for syntax errors
168 if not _mod then
169 log("error", "Unable to load module '%s': %s", module_name or "nil", err or "nil");
170 return nil, err;
171 end
172
167 local saved; 173 local saved;
168 if type(mod.module.save) == "function" then 174 if type(mod.module.save) == "function" then
169 local ok, err = pcall(mod.module.save) 175 local ok, err = pcall(mod.module.save)
170 if (not ok) and err then 176 if (not ok) and err then
171 log("warn", "Non-fatal error unloading module '%s' from '%s': %s", name, host, err); 177 log("warn", "Non-fatal error unloading module '%s' from '%s': %s", name, host, err);