-- 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");
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"
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.");
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()
-- 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();