# HG changeset patch # User Matthew Wild # Date 1579447636 0 # Node ID 25a3c8134b0a377f424b9224e679a82e285acbe3 # Parent cb107ea49b35f3aadd43595f5cff3fdf1459e75e prosody/util.startup: Switch to parse_args() for --root and --config diff -r cb107ea49b35 -r 25a3c8134b0a prosody --- 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"; diff -r cb107ea49b35 -r 25a3c8134b0a util/startup.lua --- 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();