Software /
code /
prosody
Comparison
util/startup.lua @ 10601:d8b51833926b
Merge 0.11->trunk
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sun, 19 Jan 2020 15:39:49 +0000 |
parent | 10599:4f655918fef1 |
parent | 10600:08f2fe5ac30f |
child | 10604:3b0d9919f361 |
comparison
equal
deleted
inserted
replaced
10599:4f655918fef1 | 10601:d8b51833926b |
---|---|
17 local value_params = { config = true }; | 17 local value_params = { config = true }; |
18 | 18 |
19 function startup.parse_args() | 19 function startup.parse_args() |
20 local parsed_opts = {}; | 20 local parsed_opts = {}; |
21 | 21 |
22 if #arg > 0 and arg[1] ~= "--config" then | 22 if #arg == 0 then |
23 while true do | 23 return; |
24 local raw_param = arg[1]; | 24 end |
25 if not raw_param then | 25 while true do |
26 break; | 26 local raw_param = arg[1]; |
27 end | 27 if not raw_param then |
28 | 28 break; |
29 local prefix = raw_param:match("^%-%-?"); | 29 end |
30 if not prefix then | 30 |
31 break; | 31 local prefix = raw_param:match("^%-%-?"); |
32 elseif prefix == "--" and raw_param == "--" then | 32 if not prefix then |
33 table.remove(arg, 1); | 33 break; |
34 break; | 34 elseif prefix == "--" and raw_param == "--" then |
35 end | 35 table.remove(arg, 1); |
36 local param = table.remove(arg, 1):sub(#prefix+1); | 36 break; |
37 if #param == 1 then | 37 end |
38 param = short_params[param]; | 38 local param = table.remove(arg, 1):sub(#prefix+1); |
39 end | 39 if #param == 1 then |
40 | 40 param = short_params[param]; |
41 if not param then | 41 end |
42 print("Unknown command-line option: "..tostring(param)); | 42 |
43 print("Perhaps you meant to use prosodyctl instead?"); | 43 if not param then |
44 print("Unknown command-line option: "..tostring(param)); | |
45 print("Perhaps you meant to use prosodyctl instead?"); | |
46 os.exit(1); | |
47 end | |
48 | |
49 local param_k, param_v; | |
50 if value_params[param] then | |
51 param_k, param_v = param, table.remove(arg, 1); | |
52 if not param_v then | |
53 print("Expected a value to follow command-line option: "..raw_param); | |
44 os.exit(1); | 54 os.exit(1); |
45 end | 55 end |
46 | 56 else |
47 local param_k, param_v; | 57 param_k, param_v = param:match("^([^=]+)=(.+)$"); |
48 if value_params[param] then | 58 if not param_k then |
49 param_k, param_v = param, table.remove(arg, 1); | 59 if param:match("^no%-") then |
50 if not param_v then | 60 param_k, param_v = param:sub(4), false; |
51 print("Expected a value to follow command-line option: "..raw_param); | 61 else |
52 os.exit(1); | 62 param_k, param_v = param, true; |
53 end | 63 end |
54 else | 64 end |
55 param_k, param_v = param:match("^([^=]+)=(.+)$"); | 65 end |
56 if not param_k then | 66 parsed_opts[param_k] = param_v; |
57 if param:match("^no%-") then | 67 print("ARG", param_k, param_v); |
58 param_k, param_v = param:sub(4), false; | |
59 else | |
60 param_k, param_v = param, true; | |
61 end | |
62 end | |
63 end | |
64 parsed_opts[param_k] = param_v; | |
65 end | |
66 end | 68 end |
67 prosody.opts = parsed_opts; | 69 prosody.opts = parsed_opts; |
68 end | 70 end |
69 | 71 |
70 function startup.read_config() | 72 function startup.read_config() |