diff options
-rw-r--r-- | util/argparse.lua | 7 | ||||
-rw-r--r-- | util/startup.lua | 12 |
2 files changed, 13 insertions, 6 deletions
diff --git a/util/argparse.lua b/util/argparse.lua index 928fc3eb..dde4fcc3 100644 --- a/util/argparse.lua +++ b/util/argparse.lua @@ -26,17 +26,14 @@ local function parse(arg, config) end if not param then - print("Unknown command-line option: "..tostring(param)); - print("Perhaps you meant to use prosodyctl instead?"); - os.exit(1); + return nil, "param-not-found", param; end local param_k, param_v; if value_params[param] then param_k, param_v = param, table.remove(arg, 1); if not param_v then - print("Expected a value to follow command-line option: "..raw_param); - os.exit(1); + return nil, "missing-value", raw_param; end else param_k, param_v = param:match("^([^=]+)=(.+)$"); diff --git a/util/startup.lua b/util/startup.lua index 69633c47..0e14395b 100644 --- a/util/startup.lua +++ b/util/startup.lua @@ -20,10 +20,20 @@ local short_params = { D = "daemonize", F = "no-daemonize" }; local value_params = { config = true }; function startup.parse_args() - prosody.opts = parse_args(arg, { + local opts, err, where = parse_args(arg, { short_params = short_params, value_params = value_params, }); + if not opts then + if err == "param-not-found" then + print("Unknown command-line option: "..tostring(where)); + print("Perhaps you meant to use prosodyctl instead?"); + elseif err == "missing-value" then + print("Expected a value to follow command-line option: "..where); + end + os.exit(1); + end + prosody.opts = opts; end function startup.read_config() |