Comparison

plugins/mod_admin_shell.lua @ 12224:2b348d65cd69

mod_admin_shell: Add help section about customizing table columns
author Kim Alvefur <zash@zash.se>
date Fri, 28 Jan 2022 20:39:13 +0100
parent 12209:3fe2e5da05c3
child 12225:e9f34a04067e
comparison
equal deleted inserted replaced
12223:a68f1617721b 12224:2b348d65cd69
200 end 200 end
201 end); 201 end);
202 202
203 -- Console commands -- 203 -- Console commands --
204 -- These are simple commands, not valid standalone in Lua 204 -- These are simple commands, not valid standalone in Lua
205
206 local available_columns; --forward declaration so it is reachable from the help
205 207
206 function commands.help(session, data) 208 function commands.help(session, data)
207 local print = session.print; 209 local print = session.print;
208 local section = data:match("^help (%w+)"); 210 local section = data:match("^help (%w+)");
209 if not section then 211 if not section then
222 print [[port - Commands to manage ports the server is listening on]] 224 print [[port - Commands to manage ports the server is listening on]]
223 print [[dns - Commands to manage and inspect the internal DNS resolver]] 225 print [[dns - Commands to manage and inspect the internal DNS resolver]]
224 print [[xmpp - Commands for sending XMPP stanzas]] 226 print [[xmpp - Commands for sending XMPP stanzas]]
225 print [[debug - Commands for debugging the server]] 227 print [[debug - Commands for debugging the server]]
226 print [[config - Reloading the configuration, etc.]] 228 print [[config - Reloading the configuration, etc.]]
229 print [[columns - Information about customizing session listings]]
227 print [[console - Help regarding the console itself]] 230 print [[console - Help regarding the console itself]]
228 elseif section == "c2s" then 231 elseif section == "c2s" then
229 print [[c2s:show(jid, columns) - Show all client sessions with the specified JID (or all if no JID given)]] 232 print [[c2s:show(jid, columns) - Show all client sessions with the specified JID (or all if no JID given)]]
230 print [[c2s:show_tls(jid) - Show TLS cipher info for encrypted sessions]] 233 print [[c2s:show_tls(jid) - Show TLS cipher info for encrypted sessions]]
231 print [[c2s:count() - Count sessions without listing them]] 234 print [[c2s:count() - Count sessions without listing them]]
307 print [[!old!new! - repeat the last command, but with 'old' replaced by 'new']] 310 print [[!old!new! - repeat the last command, but with 'old' replaced by 'new']]
308 print [[]] 311 print [[]]
309 print [[For those well-versed in Prosody's internals, or taking instruction from those who are,]] 312 print [[For those well-versed in Prosody's internals, or taking instruction from those who are,]]
310 print [[you can prefix a command with > to escape the console sandbox, and access everything in]] 313 print [[you can prefix a command with > to escape the console sandbox, and access everything in]]
311 print [[the running server. Great fun, but be careful not to break anything :)]] 314 print [[the running server. Great fun, but be careful not to break anything :)]]
315 elseif section == "columns" then
316 print [[The columns shown by c2s:show() and s2s:show() can be customizied via the]]
317 print [['columns' argument as described here.]]
318 print [[]]
319 print [[Columns can be specified either as "id jid ipv" or as {"id", "jid", "ipv"}.]]
320 print [[Available columns are:]]
321 for column, spec in iterators.sorted_pairs(available_columns) do
322 print("- "..column..": "..(spec.title or capitalize(column)));
323 -- TODO descriptions
324 end
325 print [[]]
326 print [[Most fields on the internal session structures can also be used as columns]]
327 -- Also, you can pass a table column specification directly, with mapper callabck and all
312 end 328 end
313 end 329 end
314 330
315 -- Session environment -- 331 -- Session environment --
316 -- Anything in def_env will be accessible within the session as a global variable 332 -- Anything in def_env will be accessible within the session as a global variable
679 elseif session.direction == "incoming" then 695 elseif session.direction == "incoming" then
680 return session.host or session.to_host, session.from_host; 696 return session.host or session.to_host, session.from_host;
681 end 697 end
682 end 698 end
683 699
684 local available_columns = { 700 available_columns = {
685 jid = { 701 jid = {
686 title = "JID"; 702 title = "JID";
687 width = 32; 703 width = 32;
688 key = "full_jid"; 704 key = "full_jid";
689 mapper = function(full_jid, session) return full_jid or get_jid(session) end; 705 mapper = function(full_jid, session) return full_jid or get_jid(session) end;