mod_storage_sql: Use util.json instead of util.serialization.
[prosody.git] / prosody
diff --git a/prosody b/prosody
index 7bc075d746a0de6890f12507a8aaa76fb9ea1b3c..07ec2bdbda64e8cf1a87a59028f71c91c01fea35 100755 (executable)
--- a/prosody
+++ b/prosody
@@ -7,6 +7,8 @@
 -- COPYING file in the source package for more information.
 --
 
+-- prosody - main executable for Prosody XMPP server
+
 -- Will be modified by configure script if run --
 
 CFG_SOURCEDIR=os.getenv("PROSODY_SRCDIR");
@@ -33,6 +35,12 @@ end
 prosody = { events = require "util.events".new(); };
 local prosody = prosody;
 
+-- Check dependencies
+local dependencies = require "util.dependencies";
+if not dependencies.check_dependencies() then
+       os.exit(1);
+end
+
 -- Load the config-parsing module
 config = require "core.configmanager"
 
@@ -69,9 +77,15 @@ function read_config()
                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.");
@@ -97,11 +111,8 @@ function init_logging()
        require "core.loggingmanager"
 end
 
-function check_dependencies()
-       -- Check runtime dependencies
-       if not require "util.dependencies".check_dependencies() then
-               os.exit(1);
-       end
+function log_dependency_warnings()
+       dependencies.log_warnings();
 end
 
 function sandbox_require()
@@ -286,7 +297,6 @@ function load_secondary_libraries()
        --- Load and initialise core modules
        require "util.import"
        require "util.xmppstream"
-       require "core.xmlhandlers"
        require "core.rostermanager"
        require "core.hostmanager"
        require "core.modulemanager"
@@ -441,13 +451,13 @@ end
 -- previous steps to have already been performed
 read_config();
 init_logging();
-check_dependencies();
 sandbox_require();
 set_function_metatable();
 load_libraries();
 init_global_state();
 read_version();
 log("info", "Hello and welcome to Prosody version %s", prosody.version);
+log_dependency_warnings();
 load_secondary_libraries();
 init_data_store();
 init_global_protection();