Report errors in the config file to the user

Fri, 13 Feb 2009 14:37:15 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Fri, 13 Feb 2009 14:37:15 +0000
changeset 793
55add3b87c01
parent 792
57c793b1575f
child 794
912dc389935a

Report errors in the config file to the user

core/configmanager.lua file | annotate | diff | comparison | revisions
prosody file | annotate | diff | comparison | revisions
--- a/core/configmanager.lua	Fri Feb 13 10:54:25 2009 +0000
+++ b/core/configmanager.lua	Fri Feb 13 14:37:15 2009 +0000
@@ -68,15 +68,15 @@
 		if f then 
 			local ok, err = parsers[format].load(f:read("*a"));
 			f:close();
-			return ok, err;
+			return ok, "parser", err;
 		end
-		return f, err;
+		return f, "file", err;
 	end
 
 	if not format then
-		return nil, "no parser specified";
+		return nil, "file", "no parser specified";
 	else
-		return nil, "no parser for "..(format);
+		return nil, "file", "no parser for "..(format);
 	end
 end
 
--- a/prosody	Fri Feb 13 10:54:25 2009 +0000
+++ b/prosody	Fri Feb 13 14:37:15 2009 +0000
@@ -40,17 +40,25 @@
 do
 	-- TODO: Check for other formats when we add support for them
 	-- Use lfs? Make a new conf/ dir?
-	local ok, err = config.load((CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
+	local ok, level, err = config.load((CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
 	if not ok then
 		print("");
 		print("**************************");
-		print("Prosody was unable to find the configuration file.");
-		print("We looked for: "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
-		print("A sample config file is included in the Prosody download called prosody.cfg.lua.dist");
-		print("Copy or rename it to prosody.cfg.lua and edit as necessary.");
+		if level == "parser" then
+			print("A problem occured while reading the config file "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
+			local err_line, err_message = tostring(err):match("%[string .-%]:(%d*): (.*)");
+			print("Error"..(err_line and (" on line "..err_line) or "")..": "..(err_message or tostring(err)));
+			print("");
+		elseif level == "file" then
+			print("Prosody was unable to find the configuration file.");
+			print("We looked for: "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
+			print("A sample config file is included in the Prosody download called prosody.cfg.lua.dist");
+			print("Copy or rename it to prosody.cfg.lua and edit as necessary.");
+		end
 		print("More help on configuring Prosody can be found at http://prosody.im/doc/configure");
 		print("Good luck!");
 		print("**************************");
+		print("");
 		os.exit(1);
 	end
 end

mercurial