aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2009-10-05 14:40:01 +0100
committerMatthew Wild <mwild1@gmail.com>2009-10-05 14:40:01 +0100
commit737705b68e0b2b6f6d54710b931e7b979340a85d (patch)
tree83b7055a6d1797c0b232721eeeb9df8a22c57ce8
parent4512d4c8ce22092c2b3086a01c2ea8fdc0c50b96 (diff)
downloadprosody-737705b68e0b2b6f6d54710b931e7b979340a85d.tar.gz
prosody-737705b68e0b2b6f6d54710b931e7b979340a85d.zip
mod_console: Add module:list() command to show modules loaded on a host
-rw-r--r--plugins/mod_console.lua25
1 files changed, 25 insertions, 0 deletions
diff --git a/plugins/mod_console.lua b/plugins/mod_console.lua
index 716c2525..112d2492 100644
--- a/plugins/mod_console.lua
+++ b/plugins/mod_console.lua
@@ -318,6 +318,31 @@ function def_env.module:reload(name, hosts)
return ok, (ok and "Module reloaded on "..count.." host"..(count ~= 1 and "s" or "")) or ("Last error: "..tostring(err));
end
+function def_env.module:list(hosts)
+ if hosts == nil then
+ hosts = array.collect(keys(prosody.hosts));
+ end
+ if type(hosts) == "string" then
+ hosts = { hosts };
+ end
+ if type(hosts) ~= "table" then
+ return false, "Please supply a host or a list of hosts you would like to see";
+ end
+
+ local print = self.session.print;
+ for _, host in ipairs(hosts) do
+ print(host..":");
+ local modules = array.collect(keys(prosody.hosts[host].modules or {})):sort();
+ if #modules == 0 then
+ print(" No modules loaded");
+ else
+ for _, name in ipairs(modules) do
+ print(" "..name);
+ end
+ end
+ end
+end
+
def_env.config = {};
function def_env.config:load(filename, format)
local config_load = require "core.configmanager".load;