diff options
author | Matthew Wild <mwild1@gmail.com> | 2020-01-19 15:39:49 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2020-01-19 15:39:49 +0000 |
commit | b319d27548f116883c7ef73e65b2efc50638ae4a (patch) | |
tree | 33fa1e49a88542d61a27d759136ff57ee9afa347 | |
parent | 5439531339a7b11904c3c5801acbf7d586de0fa0 (diff) | |
parent | 704acb8b7a7a73432639d3fc6c211625bc01072d (diff) | |
download | prosody-b319d27548f116883c7ef73e65b2efc50638ae4a.tar.gz prosody-b319d27548f116883c7ef73e65b2efc50638ae4a.zip |
Merge 0.11->trunk
-rw-r--r-- | util/startup.lua | 76 |
1 files changed, 39 insertions, 37 deletions
diff --git a/util/startup.lua b/util/startup.lua index 30d4caf9..6dbdd876 100644 --- a/util/startup.lua +++ b/util/startup.lua @@ -19,50 +19,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 |