Comparison

util/prosodyctl/check.lua @ 13217:b264ea91e930 0.12

util.prosodyctl.check: Validate format of module list options Should detect things like misplaced settings inside modules_enabled
author Kim Alvefur <zash@zash.se>
date Mon, 17 Jul 2023 14:45:15 +0200
parent 13216:fcc052ca1652
child 13218:e576c6a0d1f8
child 13219:22763b30e458
comparison
equal deleted inserted replaced
13216:fcc052ca1652 13217:b264ea91e930
494 print(" "..tostring(suggested_global_modules / function (x) return ("%q"):format(x) end)); 494 print(" "..tostring(suggested_global_modules / function (x) return ("%q"):format(x) end));
495 end 495 end
496 print(); 496 print();
497 end 497 end
498 498
499 local function validate_module_list(host, name, modules)
500 if modules == nil then
501 return -- okay except for global section, checked separately
502 end
503 local t = type(modules)
504 if t ~= "table" then
505 print(" The " .. name .. " in the " .. host .. " section should not be a " .. t .. " but a list of strings, e.g.");
506 print(" " .. name .. " = { \"name_of_module\", \"another_plugin\", }")
507 print()
508 ok = false
509 return
510 end
511 for k, v in pairs(modules) do
512 if type(k) ~= "number" or type(v) ~= "string" then
513 print(" The " .. name .. " in the " .. host .. " section should not be a map of " .. type(k) .. " to " .. type(v)
514 .. " but a list of strings, e.g.");
515 print(" " .. name .. " = { \"name_of_module\", \"another_plugin\", }")
516 ok = false
517 break
518 end
519 end
520 end
521
522 for host, options in enabled_hosts() do
523 validate_module_list(host, "modules_enabled", options.modules_enabled);
524 validate_module_list(host, "modules_disabled", options.modules_disabled);
525 end
526
499 do -- Check for modules enabled both normally and as components 527 do -- Check for modules enabled both normally and as components
500 local modules = global:get_option_set("modules_enabled"); 528 local modules = global:get_option_set("modules_enabled");
501 for host, options in enabled_hosts() do 529 for host, options in enabled_hosts() do
502 local component_module = options.component_module; 530 local component_module = options.component_module;
503 if component_module and modules:contains(component_module) then 531 if component_module and modules:contains(component_module) then