prosody

changeset 2279
27441b099984
parent 2159
b8635ebd7f57
child 2321
7e7484a4e821
child 2825
914d7afb8212
--- a/prosody	Sun Nov 29 21:32:39 2009 +0100
+++ b/prosody	Sun Nov 29 21:33:37 2009 +0100
@@ -14,7 +14,7 @@
 CFG_PLUGINDIR=os.getenv("PROSODY_PLUGINDIR");
 CFG_DATADIR=os.getenv("PROSODY_DATADIR");
 
--- -- -- -- -- -- -- ---- -- -- -- -- -- -- -- --
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 
 if CFG_SOURCEDIR then
 	package.path = CFG_SOURCEDIR.."/?.lua;"..package.path;
@@ -58,7 +58,27 @@
 function read_config()
 	-- TODO: Check for other formats when we add support for them
 	-- Use lfs? Make a new conf/ dir?
-	local ok, level, err = config.load((CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
+	local filenames = {};
+	
+	local filename;
+	if arg[1] == "--config" and arg[2] then
+		table.insert(filenames, arg[2]);
+		if CFG_CONFIGDIR then
+			table.insert(filenames, CFG_CONFIGDIR.."/"..arg[2]);
+		end
+	else
+		table.insert(filenames, (CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
+	end
+	for _,_filename in ipairs(filenames) do
+		filename = _filename;
+		local file = io.open(filename);
+		if file then
+			file:close();
+			CFG_CONFIGDIR = filename:match("^(.*)[\\/][^\\/]*$");
+			break;
+		end
+	end
+	local ok, level, err = config.load(filename);
 	if not ok then
 		print("\n");
 		print("**************************");
@@ -82,13 +102,13 @@
 end
 
 function load_libraries()
-	--- Initialize logging
+	-- Initialize logging
 	require "core.loggingmanager"
 	
-	--- Check runtime dependencies
+	-- Check runtime dependencies
 	require "util.dependencies"
 	
-	--- Load socket framework
+	-- Load socket framework
 	server = require "net.server"
 end	
 

mercurial