Software /
code /
prosody
Comparison
plugins/mod_admin_shell.lua @ 13819:3ee95eb17045 13.0
mod_admin_shell: Add debug:cert_index() command
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 03 Apr 2025 16:54:02 +0100 |
parent | 13796:c8e534b4f2e2 |
child | 13823:e78e79f1b5f5 |
comparison
equal
deleted
inserted
replaced
13818:8a7dbb291b02 | 13819:3ee95eb17045 |
---|---|
2399 }); | 2399 }); |
2400 end | 2400 end |
2401 return true, ("%d runners pending"):format(c); | 2401 return true, ("%d runners pending"):format(c); |
2402 end | 2402 end |
2403 | 2403 |
2404 describe_command [[debug:cert_index([path]) - Show Prosody's view of a directory of certs]] | |
2405 function def_env.debug:cert_index(path) | |
2406 local print = self.session.print; | |
2407 local cm = require "core.certmanager"; | |
2408 | |
2409 path = path or module:get_option("certificates", "certs"); | |
2410 | |
2411 local sink = logger.add_simple_sink(function (source, level, message) | |
2412 if source == "certmanager" then | |
2413 self.session.print(source, level, message); | |
2414 end | |
2415 end); | |
2416 | |
2417 local index = {}; | |
2418 cm.index_certs(path, index) | |
2419 | |
2420 if not logger.remove_sink(sink) then | |
2421 module:log("warn", "Unable to remove log sink"); | |
2422 end | |
2423 | |
2424 local c, max_domain = 0, 8; | |
2425 for domain in pairs(index) do | |
2426 if #domain > max_domain then | |
2427 max_domain = #domain; | |
2428 end | |
2429 end | |
2430 | |
2431 print(""); | |
2432 | |
2433 local row = format_table({ | |
2434 { title = "Domain", width = max_domain }; | |
2435 { title = "Certificate", width = "100%" }; | |
2436 { title = "Service", width = 5 }; | |
2437 }, self.session.width); | |
2438 print(row()); | |
2439 | |
2440 for domain, certs in it.sorted_pairs(index) do | |
2441 for cert_file, services in it.sorted_pairs(certs) do | |
2442 for service in it.sorted_pairs(services) do | |
2443 c = c + 1; | |
2444 print(row({ domain, cert_file, service })); | |
2445 end | |
2446 end | |
2447 end | |
2448 | |
2449 print(""); | |
2450 | |
2451 return true, ("Showing %d certificates in %s"):format(c, path); | |
2452 end | |
2453 | |
2404 def_env.stats = new_section("Commands to show internal statistics"); | 2454 def_env.stats = new_section("Commands to show internal statistics"); |
2405 | 2455 |
2406 local short_units = { | 2456 local short_units = { |
2407 seconds = "s", | 2457 seconds = "s", |
2408 bytes = "B", | 2458 bytes = "B", |