prosody: Catch a recursive Include error and print a more friendly error

Tue, 21 Dec 2010 22:26:22 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Tue, 21 Dec 2010 22:26:22 +0000
changeset 3930
46d9cf613bb1
parent 3929
7cb03d67101b
child 3931
6daed692264f

prosody: Catch a recursive Include error and print a more friendly error

prosody file | annotate | diff | comparison | revisions
--- a/prosody	Tue Dec 21 22:25:54 2010 +0000
+++ b/prosody	Tue Dec 21 22:26:22 2010 +0000
@@ -77,9 +77,15 @@
 		print("\n");
 		print("**************************");
 		if level == "parser" then
-			print("A problem occured while reading the config file "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
+			print("A problem occured while reading the config file "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua"..":");
+			print("");
 			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)));
+			if err:match("chunk has too many syntax levels$") then
+				print("An Include statement in a config file is including an already-included");
+				print("file and causing an infinite loop. An Include statement in a config file is...");
+			else
+				print("Error"..(err_line and (" on line "..err_line) or "")..": "..(err_message or tostring(err)));
+			end
 			print("");
 		elseif level == "file" then
 			print("Prosody was unable to find the configuration file.");

mercurial