aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--util/argparse.lua7
-rw-r--r--util/startup.lua12
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()