Changeset

10597:25a3c8134b0a 0.11

prosody/util.startup: Switch to parse_args() for --root and --config
author Matthew Wild <mwild1@gmail.com>
date Sun, 19 Jan 2020 15:27:16 +0000
parents 10596:cb107ea49b35
children 10598:5cf481bee678
files prosody util/startup.lua
diffstat 2 files changed, 7 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/prosody	Sun Jan 19 15:26:22 2020 +0000
+++ b/prosody	Sun Jan 19 15:27:16 2020 +0000
@@ -43,11 +43,7 @@
 	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
+
 
 local startup = require "util.startup";
 local async = require "util.async";
--- a/util/startup.lua	Sun Jan 19 15:26:22 2020 +0000
+++ b/util/startup.lua	Sun Jan 19 15:27:16 2020 +0000
@@ -70,12 +70,11 @@
 	local filenames = {};
 
 	local filename;
-	if arg[1] == "--config" and arg[2] then
-		table.insert(filenames, arg[2]);
+	if prosody.opts.config then
+		table.insert(filenames, prosody.opts.config);
 		if CFG_CONFIGDIR then
-			table.insert(filenames, CFG_CONFIGDIR.."/"..arg[2]);
+			table.insert(filenames, CFG_CONFIGDIR.."/"..prosody.opts.config);
 		end
-		table.remove(arg, 1); table.remove(arg, 1);
 	elseif os.getenv("PROSODY_CONFIG") then -- Passed by prosodyctl
 			table.insert(filenames, os.getenv("PROSODY_CONFIG"));
 	else
@@ -459,8 +458,7 @@
 			os.exit(1);
 		end
 		prosody.current_uid = pposix.getuid();
-		local arg_root = arg[1] == "--root";
-		if arg_root then table.remove(arg, 1); end
+		local arg_root = prosody.opts.root;
 		if prosody.current_uid == 0 and config.get("*", "run_as_root") ~= true and not arg_root then
 			-- We haz root!
 			local desired_user = config.get("*", "prosody_user") or "prosody";
@@ -569,6 +567,7 @@
 
 -- prosodyctl only
 function startup.prosodyctl()
+	startup.parse_args();
 	startup.init_global_state();
 	startup.read_config();
 	startup.force_console_logging();
@@ -589,6 +588,7 @@
 function startup.prosody()
 	-- These actions are in a strict order, as many depend on
 	-- previous steps to have already been performed
+	startup.parse_args();
 	startup.init_global_state();
 	startup.read_config();
 	startup.init_logging();