diff options
author | Matthew Wild <mwild1@gmail.com> | 2009-10-05 14:40:01 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2009-10-05 14:40:01 +0100 |
commit | c32c45aeaa90410e9f50b28fbc8f74db22dec484 (patch) | |
tree | 298000db00f6d41791424b5fa4473ad0c1fa60cb /plugins | |
parent | 7acd1cae890d82d2f83887bc34c1aded2631f427 (diff) | |
download | prosody-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.lua | 25 |
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; |