aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
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
commitc32c45aeaa90410e9f50b28fbc8f74db22dec484 (patch)
tree298000db00f6d41791424b5fa4473ad0c1fa60cb /plugins
parent7acd1cae890d82d2f83887bc34c1aded2631f427 (diff)
downloadprosody-c32c45aeaa90410e9f50b28fbc8f74db22dec484.tar.gz
prosody-c32c45aeaa90410e9f50b28fbc8f74db22dec484.zip
mod_console: Add module:list() command to show modules loaded on a host
Diffstat (limited to 'plugins')
-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;