Software /
code /
prosody
Diff
plugins/mod_console.lua @ 1908:27c1c6e6c583
Merge with 0.5
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 05 Oct 2009 14:42:56 +0100 |
parent | 1823:7c3ec7ac6316 |
parent | 1907:1dd4443e7d93 |
child | 1914:e7f6baf39b56 |
line wrap: on
line diff
--- a/plugins/mod_console.lua Mon Oct 05 10:10:53 2009 +0100 +++ b/plugins/mod_console.lua Mon Oct 05 14:42:56 2009 +0100 @@ -183,6 +183,7 @@ print [[module:load(module, host) - Load the specified module on the specified host (or all hosts if none given)]] print [[module:reload(module, host) - The same, but unloads and loads the module (saving state if the module supports it)]] print [[module:unload(module, host) - The same, but just unloads the module from memory]] + print [[module:list(host) - List the modules loaded on the specified host]] elseif section == "server" then print [[server:version() - Show the server's version number]] print [[server:uptime() - Show how long the server has been running]] @@ -327,6 +328,31 @@ 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;