Software /
code /
prosody
Comparison
plugins/mod_admin_shell.lua @ 13354:83f3076965f6
mod_admin_shell: Fix linter issues
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 29 Nov 2023 17:49:20 +0000 |
parent | 13352:b1f5a5531564 |
child | 13473:9eb081616842 |
comparison
equal
deleted
inserted
replaced
13353:27512ebcc8af | 13354:83f3076965f6 |
---|---|
301 error("Failed to parse command description: "..s); | 301 error("Failed to parse command description: "..s); |
302 end | 302 end |
303 local command_help = getmetatable(def_env[section]).help.commands; | 303 local command_help = getmetatable(def_env[section]).help.commands; |
304 command_help[name] = { | 304 command_help[name] = { |
305 desc = desc; | 305 desc = desc; |
306 args = array.collect(args:gmatch("[%w_]+")):map(function (name) | 306 args = array.collect(args:gmatch("[%w_]+")):map(function (arg_name) |
307 return { name = name }; | 307 return { name = arg_name }; |
308 end); | 308 end); |
309 }; | 309 }; |
310 end | 310 end |
311 | 311 |
312 -- Console commands -- | 312 -- Console commands -- |
313 -- These are simple commands, not valid standalone in Lua | 313 -- These are simple commands, not valid standalone in Lua |
314 | 314 |
315 -- Help about individual topics is handled by def_env.help | 315 -- Help about individual topics is handled by def_env.help |
316 function commands.help(session, data) | 316 function commands.help(session, data) |
317 local print = session.print; | 317 local print = session.print; |
318 local section = data:match("^help (%w+)"); | 318 |
319 if not section then | 319 local topic = data:match("^help (%w+)"); |
320 print [[Commands are divided into multiple sections. For help on a particular section, ]] | 320 if topic then |
321 print [[type: help SECTION (for example, 'help c2s'). Sections are: ]] | 321 return def_env.help[topic]({ session = session }); |
322 print [[]] | 322 end |
323 local row = format_table({ { title = "Section", width = 7 }, { title = "Description", width = "100%" } }, session.width) | 323 |
324 print(row()) | 324 print [[Commands are divided into multiple sections. For help on a particular section, ]] |
325 for section_name, section in it.sorted_pairs(def_env) do | 325 print [[type: help SECTION (for example, 'help c2s'). Sections are: ]] |
326 local section_mt = getmetatable(section); | 326 print [[]] |
327 local section_help = section_mt and section_mt.help; | 327 local row = format_table({ { title = "Section", width = 7 }, { title = "Description", width = "100%" } }, session.width) |
328 print(row { section_name; section_help and section_help.desc or "" }); | 328 print(row()) |
329 end | 329 for section_name, section in it.sorted_pairs(def_env) do |
330 else | 330 local section_mt = getmetatable(section); |
331 return def_env.help[section]({ session = session }); | 331 local section_help = section_mt and section_mt.help; |
332 print(row { section_name; section_help and section_help.desc or "" }); | |
332 end | 333 end |
333 | 334 |
334 print(""); | 335 print(""); |
335 | 336 |
336 print [[In addition to info about commands, the following general topics are available:]] | 337 print [[In addition to info about commands, the following general topics are available:]] |
337 | 338 |
338 print(""); | 339 print(""); |
339 for topic_name, topic in it.sorted_pairs(help_topics) do | 340 for topic_name, topic_info in it.sorted_pairs(help_topics) do |
340 print(topic_name .. " - "..topic.desc); | 341 print(topic_name .. " - "..topic_info.desc); |
341 end | 342 end |
342 end | 343 end |
343 | 344 |
344 -- Session environment -- | 345 -- Session environment -- |
345 -- Anything in def_env will be accessible within the session as a global variable | 346 -- Anything in def_env will be accessible within the session as a global variable |
1801 total = total + 1; | 1802 total = total + 1; |
1802 end | 1803 end |
1803 return true, "Showing "..(pat and (matches.." of ") or "all " )..total.." users"; | 1804 return true, "Showing "..(pat and (matches.." of ") or "all " )..total.." users"; |
1804 end | 1805 end |
1805 | 1806 |
1806 def_env.xmpp = new_section("Commands for sending XMPP stanzas");; | 1807 def_env.xmpp = new_section("Commands for sending XMPP stanzas"); |
1807 | 1808 |
1808 describe_command [[xmpp:ping(localhost, remotehost) - Sends a ping to a remote XMPP server and reports the response]] | 1809 describe_command [[xmpp:ping(localhost, remotehost) - Sends a ping to a remote XMPP server and reports the response]] |
1809 local new_id = require "prosody.util.id".medium; | 1810 local new_id = require "prosody.util.id".medium; |
1810 function def_env.xmpp:ping(localhost, remotehost, timeout) | 1811 function def_env.xmpp:ping(localhost, remotehost, timeout) |
1811 localhost = select(2, jid_split(localhost)); | 1812 localhost = select(2, jid_split(localhost)); |
2394 -- Otherwise we get strange stuff like average cpu usage decreasing until | 2395 -- Otherwise we get strange stuff like average cpu usage decreasing until |
2395 -- the next sample and so on. | 2396 -- the next sample and so on. |
2396 return setmetatable({ session = self.session, stats = true, now = time.now() }, stats_mt); | 2397 return setmetatable({ session = self.session, stats = true, now = time.now() }, stats_mt); |
2397 end | 2398 end |
2398 | 2399 |
2399 describe_command [[stats:show(pattern) - Show internal statistics, optionally filtering by name with a pattern. Append :cfgraph() or :histogram() for graphs]] | 2400 describe_command [[stats:show(pattern) - Show internal statistics, optionally filtering by name with a pattern.]] |
2401 -- Undocumented currently, you can append :histogram() or :cfgraph() to stats:show() for rendered graphs. | |
2400 function def_env.stats:show(name_filter) | 2402 function def_env.stats:show(name_filter) |
2401 local statsman = require "prosody.core.statsmanager" | 2403 local statsman = require "prosody.core.statsmanager" |
2402 local collect = statsman.collect | 2404 local collect = statsman.collect |
2403 if collect then | 2405 if collect then |
2404 -- force collection if in manual mode | 2406 -- force collection if in manual mode |
2482 handler = function (...) | 2484 handler = function (...) |
2483 local selected_host = select(2, jid_split((select(selector_index, ...)))); | 2485 local selected_host = select(2, jid_split((select(selector_index, ...)))); |
2484 if type(selected_host) ~= "string" then | 2486 if type(selected_host) ~= "string" then |
2485 return nil, "Invalid or missing argument '"..command.host_selector.."'"; | 2487 return nil, "Invalid or missing argument '"..command.host_selector.."'"; |
2486 end | 2488 end |
2487 if not hosts[selected_host] then | 2489 if not prosody.hosts[selected_host] then |
2488 return nil, "Unknown host: "..selected_host; | 2490 return nil, "Unknown host: "..selected_host; |
2489 end | 2491 end |
2490 local handler = host_commands[qualified_name][selected_host]; | 2492 local host_handler = host_commands[qualified_name][selected_host]; |
2491 if not handler then | 2493 if not host_handler then |
2492 return nil, "This command is not available on "..selected_host; | 2494 return nil, "This command is not available on "..selected_host; |
2493 end | 2495 end |
2494 return handler(...); | 2496 return host_handler(...); |
2495 end; | 2497 end; |
2496 }; | 2498 }; |
2497 }; | 2499 }; |
2498 host_commands[qualified_name] = host_command_info; | 2500 host_commands[qualified_name] = host_command_info; |
2499 end | 2501 end |