Software / code / prosody
Comparison
core/modulemanager.lua @ 12275:13624194984b
core.modulemanager: Save module metadata for potential later use
Makes it reachable from the shell if nothing else
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 05 Feb 2022 01:33:46 +0100 |
| parent | 12257:7adfd5d29576 |
| child | 12450:7efd4bcaa95c |
comparison
equal
deleted
inserted
replaced
| 12274:10447f940fec | 12275:13624194984b |
|---|---|
| 217 , { __index = api }); | 217 , { __index = api }); |
| 218 | 218 |
| 219 local pluginenv = setmetatable({ module = api_instance }, { __index = _G }); | 219 local pluginenv = setmetatable({ module = api_instance }, { __index = _G }); |
| 220 api_instance.environment = pluginenv; | 220 api_instance.environment = pluginenv; |
| 221 | 221 |
| 222 local mod, err = loader:load_code(module_name, nil, pluginenv); | 222 local mod, err, meta = loader:load_code(module_name, nil, pluginenv); |
| 223 if not mod then | 223 if not mod then |
| 224 log("error", "Unable to load module '%s': %s", module_name or "nil", err or "nil"); | 224 log("error", "Unable to load module '%s': %s", module_name or "nil", err or "nil"); |
| 225 api_instance:set_status("error", "Failed to load (see log)"); | 225 api_instance:set_status("error", "Failed to load (see log)"); |
| 226 return nil, err; | 226 return nil, err; |
| 227 end | 227 end |
| 228 | 228 |
| 229 api_instance.path = err; | 229 api_instance.path = err; |
| 230 api_instance.meta = meta; | |
| 230 | 231 |
| 231 local custom_plugins = prosody.paths.installer; | 232 local custom_plugins = prosody.paths.installer; |
| 232 if custom_plugins and err:sub(1, #custom_plugins+1) == custom_plugins.."/" then | 233 if custom_plugins and err:sub(1, #custom_plugins+1) == custom_plugins.."/" then |
| 233 -- Stage 1: Make it work (you are here) | 234 -- Stage 1: Make it work (you are here) |
| 234 -- Stage 2: Make it less hacky (TODO) | 235 -- Stage 2: Make it less hacky (TODO) |