Comparison

core/modulemanager.lua @ 1960:1e674dae31ae

modulemanager: Re-organise module loading to still work when no global modules_enabled is defined in the config (thanks hoelzro for accidentally discovering this one)
author Matthew Wild <mwild1@gmail.com>
date Fri, 16 Oct 2009 22:12:46 +0100
parent 1946:0eb3835ef9bf
child 1986:d4ba9d94eb74
comparison
equal deleted inserted replaced
1959:f56670ce64de 1960:1e674dae31ae
54 54
55 local NULL = {}; 55 local NULL = {};
56 56
57 -- Load modules when a host is activated 57 -- Load modules when a host is activated
58 function load_modules_for_host(host) 58 function load_modules_for_host(host)
59 local disabled_set = {};
60 local modules_disabled = config.get(host, "core", "modules_disabled");
61 if modules_disabled then
62 for _, module in ipairs(modules_disabled) do
63 disabled_set[module] = true;
64 end
65 end
66
67 -- Load auto-loaded modules for this host
68 for _, module in ipairs(autoload_modules) do
69 if not disabled_set[module] then
70 load(host, module);
71 end
72 end
73
74 -- Load modules from global section
59 if config.get(host, "core", "load_global_modules") ~= false then 75 if config.get(host, "core", "load_global_modules") ~= false then
60 -- Load modules from global section
61 local modules_enabled = config.get("*", "core", "modules_enabled"); 76 local modules_enabled = config.get("*", "core", "modules_enabled");
62 local modules_disabled = config.get(host, "core", "modules_disabled");
63 local disabled_set = {};
64 if modules_enabled then 77 if modules_enabled then
65 if modules_disabled then
66 for _, module in ipairs(modules_disabled) do
67 disabled_set[module] = true;
68 end
69 end
70 for _, module in ipairs(autoload_modules) do
71 if not disabled_set[module] then
72 load(host, module);
73 end
74 end
75 for _, module in ipairs(modules_enabled) do 78 for _, module in ipairs(modules_enabled) do
76 if not disabled_set[module] and not is_loaded(host, module) then 79 if not disabled_set[module] and not is_loaded(host, module) then
77 load(host, module); 80 load(host, module);
78 end 81 end
79 end 82 end