Diff

core/modulemanager.lua @ 637:30b8ad9f7b70

Fix for not loading global modules when host-specific modules are specified in config
author Matthew Wild <mwild1@gmail.com>
date Wed, 24 Dec 2008 18:48:09 +0000
parent 615:4ae3e81513f3
child 670:d5cf10b7fc44
line wrap: on
line diff
--- a/core/modulemanager.lua	Mon Dec 22 22:19:42 2008 +0000
+++ b/core/modulemanager.lua	Wed Dec 24 18:48:09 2008 +0000
@@ -53,6 +53,24 @@
 
 -- Load modules when a host is activated
 function load_modules_for_host(host)
+	-- Load modules from global section
+	local modules_enabled = config.get("*", "core", "modules_enabled");
+	local modules_disabled = config.get(host, "core", "modules_disabled");
+	local disabled_set = {};
+	if modules_enabled then
+		if modules_disabled then
+			for _, module in pairs(modules_disabled) do
+				disabled_set[module] = true;
+			end
+		end
+		for _, module in pairs(modules_enabled) do
+			if not disabled_set[module] then
+				load(host, module);
+			end
+		end
+	end
+
+	-- Load modules from just this host
 	local modules_enabled = config.get(host, "core", "modules_enabled");
 	if modules_enabled then
 		for _, module in pairs(modules_enabled) do