Merge 0.10->trunk
[prosody.git] / prosody
diff --git a/prosody b/prosody
index 47998583168463b238f6998e038f3a544e18c99b..ade85f80af1126c8697c5fd1d8a6eb66dc64de2a 100755 (executable)
--- a/prosody
+++ b/prosody
 
 -- Will be modified by configure script if run --
 
-CFG_SOURCEDIR=os.getenv("PROSODY_SRCDIR");
-CFG_CONFIGDIR=os.getenv("PROSODY_CFGDIR");
-CFG_PLUGINDIR=os.getenv("PROSODY_PLUGINDIR");
-CFG_DATADIR=os.getenv("PROSODY_DATADIR");
+CFG_SOURCEDIR=CFG_SOURCEDIR or os.getenv("PROSODY_SRCDIR");
+CFG_CONFIGDIR=CFG_CONFIGDIR or os.getenv("PROSODY_CFGDIR");
+CFG_PLUGINDIR=CFG_PLUGINDIR or os.getenv("PROSODY_PLUGINDIR");
+CFG_DATADIR=CFG_DATADIR or os.getenv("PROSODY_DATADIR");
 
 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 
@@ -43,6 +43,12 @@ if CFG_DATADIR then
        end
 end
 
+if #arg > 0 and arg[1] ~= "--config" then
+       print("Unknown command-line option: "..tostring(arg[1]));
+       print("Perhaps you meant to use prosodyctl instead?");
+       return 1;
+end
+
 -- Global 'prosody' object
 local prosody = { events = require "util.events".new(); };
 _G.prosody = prosody;
@@ -105,7 +111,7 @@ function read_config()
                        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("More help on configuring Prosody can be found at https://prosody.im/doc/configure");
                print("Good luck!");
                print("**************************");
                print("");
@@ -266,10 +272,14 @@ function init_global_state()
        end
 
        -- Function to initiate prosody shutdown
-       function prosody.shutdown(reason)
+       function prosody.shutdown(reason, code)
                log("info", "Shutting down: %s", reason or "unknown reason");
                prosody.shutdown_reason = reason;
-               prosody.events.fire_event("server-stopping", {reason = reason});
+               prosody.shutdown_code = code;
+               prosody.events.fire_event("server-stopping", {
+                       reason = reason;
+                       code = code;
+               });
                server.setquitting(true);
        end
 end
@@ -412,3 +422,4 @@ cleanup();
 prosody.events.fire_event("server-stopped");
 log("info", "Shutdown complete");
 
+os.exit(prosody.shutdown_code)