Comparison

core/modulemanager.lua @ 9867:984f27e4b8a3

modulemanager: Set module status on successful or failed module load
author Matthew Wild <mwild1@gmail.com>
date Tue, 19 Mar 2019 09:05:15 +0000
parent 9563:732314eb3258
child 10250:1006739de449
comparison
equal deleted inserted replaced
9866:09cc8c856e5e 9867:984f27e4b8a3
167 api_instance.environment = pluginenv; 167 api_instance.environment = pluginenv;
168 168
169 local mod, err = pluginloader.load_code(module_name, nil, pluginenv); 169 local mod, err = pluginloader.load_code(module_name, nil, pluginenv);
170 if not mod then 170 if not mod then
171 log("error", "Unable to load module '%s': %s", module_name or "nil", err or "nil"); 171 log("error", "Unable to load module '%s': %s", module_name or "nil", err or "nil");
172 api_instance:set_status("error", "Failed to load (see log)");
172 return nil, err; 173 return nil, err;
173 end 174 end
174 175
175 api_instance.path = err; 176 api_instance.path = err;
176 177
180 -- Call module's "load" 181 -- Call module's "load"
181 if module_has_method(pluginenv, "load") then 182 if module_has_method(pluginenv, "load") then
182 ok, err = call_module_method(pluginenv, "load"); 183 ok, err = call_module_method(pluginenv, "load");
183 if not ok then 184 if not ok then
184 log("warn", "Error loading module '%s' on '%s': %s", module_name, host, err or "nil"); 185 log("warn", "Error loading module '%s' on '%s': %s", module_name, host, err or "nil");
186 api_instance:set_status("warn", "Error during load (see log)");
185 end 187 end
186 end 188 end
187 api_instance.reloading, api_instance.saved_state = nil, nil; 189 api_instance.reloading, api_instance.saved_state = nil, nil;
188 190
189 if api_instance.host == "*" then 191 if api_instance.host == "*" then
202 end 204 end
203 end 205 end
204 if not ok then 206 if not ok then
205 modulemap[api_instance.host][module_name] = nil; 207 modulemap[api_instance.host][module_name] = nil;
206 log("error", "Error initializing module '%s' on '%s': %s", module_name, host, err or "nil"); 208 log("error", "Error initializing module '%s' on '%s': %s", module_name, host, err or "nil");
209 api_instance:set_status("warn", "Error during load (see log)");
210 else
211 api_instance:set_status("core", "Loaded", false);
207 end 212 end
208 return ok and pluginenv, err; 213 return ok and pluginenv, err;
209 end 214 end
210 215
211 local function do_reload_module(host, name) 216 local function do_reload_module(host, name)