From 6c0b6f76fbc3df0a1d80754fd69729de4acfe347 Mon Sep 17 00:00:00 2001
From: Matthew Wild <mwild1@gmail.com>
Date: Fri, 16 Oct 2009 22:12:46 +0100
Subject: 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)

---
 core/modulemanager.lua | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

(limited to 'core')

diff --git a/core/modulemanager.lua b/core/modulemanager.lua
index 465b9dd8..312ca738 100644
--- a/core/modulemanager.lua
+++ b/core/modulemanager.lua
@@ -56,22 +56,25 @@ local NULL = {};
 
 -- Load modules when a host is activated
 function load_modules_for_host(host)
+	local disabled_set = {};
+	local modules_disabled = config.get(host, "core", "modules_disabled");
+	if modules_disabled then
+		for _, module in ipairs(modules_disabled) do
+			disabled_set[module] = true;
+		end
+	end
+
+	-- Load auto-loaded modules for this host
+	for _, module in ipairs(autoload_modules) do
+		if not disabled_set[module] then
+			load(host, module);
+		end
+	end
+
+	-- Load modules from global section
 	if config.get(host, "core", "load_global_modules") ~= false then
-		-- 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 ipairs(modules_disabled) do
-					disabled_set[module] = true;
-				end
-			end
-			for _, module in ipairs(autoload_modules) do
-				if not disabled_set[module] then
-					load(host, module);
-				end
-			end
 			for _, module in ipairs(modules_enabled) do
 				if not disabled_set[module] and not is_loaded(host, module) then
 					load(host, module);
-- 
cgit v1.2.3