# HG changeset patch # User Kim Alvefur # Date 1592415132 -7200 # Node ID d770435f0f84b1bced33c839bbda6c9cc4eaf4b0 # Parent 2d57c49bfa1271d642cd42ac89538630eeb5b05f util.argparse: Move exiting and error to util.startup It's not so nice to have a library that exits the entire application from under you, so this and the error reporting belongs in util.startup. The argparse code was originally in util.startup but moved out in 1196f1e8d178 but the error handling should have stayed. diff -r 2d57c49bfa12 -r d770435f0f84 util/argparse.lua --- a/util/argparse.lua Mon Jun 15 14:23:47 2020 +0100 +++ b/util/argparse.lua Wed Jun 17 19:32:12 2020 +0200 @@ -26,17 +26,14 @@ 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 -r 2d57c49bfa12 -r d770435f0f84 util/startup.lua --- a/util/startup.lua Mon Jun 15 14:23:47 2020 +0100 +++ b/util/startup.lua Wed Jun 17 19:32:12 2020 +0200 @@ -20,10 +20,20 @@ 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()