aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2020-01-19 15:39:13 +0000
committerMatthew Wild <mwild1@gmail.com>2020-01-19 15:39:13 +0000
commit704acb8b7a7a73432639d3fc6c211625bc01072d (patch)
treec9db36a5ba5571d7cf481d28cd16cbd493ecf155
parent4167f630b8e54b56afc15c0362382a75e2d35058 (diff)
downloadprosody-704acb8b7a7a73432639d3fc6c211625bc01072d.tar.gz
prosody-704acb8b7a7a73432639d3fc6c211625bc01072d.zip
util.startup: Fix logic to make --config work again
-rw-r--r--util/startup.lua76
1 files changed, 39 insertions, 37 deletions
diff --git a/util/startup.lua b/util/startup.lua
index 93f40c8f..e54d6935 100644
--- a/util/startup.lua
+++ b/util/startup.lua
@@ -18,50 +18,52 @@ local value_params = { config = true };
function startup.parse_args()
local parsed_opts = {};
- if #arg > 0 and arg[1] ~= "--config" then
- while true do
- local raw_param = arg[1];
- if not raw_param then
- break;
- end
+ if #arg == 0 then
+ return;
+ end
+ while true do
+ local raw_param = arg[1];
+ if not raw_param then
+ break;
+ end
- local prefix = raw_param:match("^%-%-?");
- if not prefix then
- break;
- elseif prefix == "--" and raw_param == "--" then
- table.remove(arg, 1);
- break;
- end
- local param = table.remove(arg, 1):sub(#prefix+1);
- if #param == 1 then
- param = short_params[param];
- end
+ local prefix = raw_param:match("^%-%-?");
+ if not prefix then
+ break;
+ elseif prefix == "--" and raw_param == "--" then
+ table.remove(arg, 1);
+ break;
+ end
+ local param = table.remove(arg, 1):sub(#prefix+1);
+ if #param == 1 then
+ param = short_params[param];
+ end
- if not param then
- print("Unknown command-line option: "..tostring(param));
- print("Perhaps you meant to use prosodyctl instead?");
+ if not param then
+ print("Unknown command-line option: "..tostring(param));
+ print("Perhaps you meant to use prosodyctl instead?");
+ os.exit(1);
+ 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);
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);
- end
- else
- param_k, param_v = param:match("^([^=]+)=(.+)$");
- if not param_k then
- if param:match("^no%-") then
- param_k, param_v = param:sub(4), false;
- else
- param_k, param_v = param, true;
- end
+ else
+ param_k, param_v = param:match("^([^=]+)=(.+)$");
+ if not param_k then
+ if param:match("^no%-") then
+ param_k, param_v = param:sub(4), false;
+ else
+ param_k, param_v = param, true;
end
end
- parsed_opts[param_k] = param_v;
end
+ parsed_opts[param_k] = param_v;
+ print("ARG", param_k, param_v);
end
prosody.opts = parsed_opts;
end