1 |
1 |
|
2 local plugin_dir = CFG_PLUGINDIR or "./plugins/"; |
2 |
3 |
3 local logger = require "util.logger"; |
4 local logger = require "util.logger"; |
4 local log = logger.init("modulemanager") |
5 local log = logger.init("modulemanager") |
5 |
6 |
6 local loadfile, pcall = loadfile, pcall; |
7 local loadfile, pcall = loadfile, pcall; |
9 local t_insert = table.insert; |
10 local t_insert = table.insert; |
10 local type = type; |
11 local type = type; |
11 |
12 |
12 local tostring, print = tostring, print; |
13 local tostring, print = tostring, print; |
13 |
14 |
|
15 -- We need this to let modules access the real global namespace |
14 local _G = _G; |
16 local _G = _G; |
15 local debug = debug; |
|
16 |
17 |
17 module "modulemanager" |
18 module "modulemanager" |
18 |
19 |
19 local api = {}; -- Module API container |
20 local api = {}; -- Module API container |
20 |
21 |
28 |
29 |
29 function load(host, module_name, config) |
30 function load(host, module_name, config) |
30 if not (host and module_name) then |
31 if not (host and module_name) then |
31 return nil, "insufficient-parameters"; |
32 return nil, "insufficient-parameters"; |
32 end |
33 end |
33 local mod, err = loadfile("plugins/mod_"..module_name..".lua"); |
34 local mod, err = loadfile(plugin_dir.."mod_"..module_name..".lua"); |
34 if not mod then |
35 if not mod then |
35 log("error", "Unable to load module '%s': %s", module_name or "nil", err or "nil"); |
36 log("error", "Unable to load module '%s': %s", module_name or "nil", err or "nil"); |
36 return nil, err; |
37 return nil, err; |
37 end |
38 end |
38 |
39 |