Automated merge with http://waqas.ath.cx:8000/
[prosody.git] / plugins / mod_console.lua
index 4471dccb95323626a2b3cf0fdf00d35f20b4975b..d6383a780f19eca232e2e8310034d3df68fc942d 100644 (file)
@@ -1,3 +1,23 @@
+-- Prosody IM v0.2
+-- Copyright (C) 2008 Matthew Wild
+-- Copyright (C) 2008 Waqas Hussain
+-- 
+-- This program is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU General Public License
+-- as published by the Free Software Foundation; either version 2
+-- of the License, or (at your option) any later version.
+-- 
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+-- 
+-- You should have received a copy of the GNU General Public License
+-- along with this program; if not, write to the Free Software
+-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+--
+
+
 \r
 local connlisteners_register = require "net.connlisteners".register;\r
 \r
@@ -37,7 +57,7 @@ function console_listener.listener(conn, data)
                -- Handle new connection\r
                session = console:new_session(conn);\r
                sessions[conn] = session;\r
-               session.print("Welcome to the lxmppd admin console!");\r
+               printbanner(session);\r
        end\r
        if data then\r
                -- Handle data\r
@@ -124,20 +144,29 @@ end
 \r
 def_env.server = {};\r
 function def_env.server:reload()\r
-       dofile "main.lua"\r
+       dofile "prosody"\r
        return true, "Server reloaded";\r
 end\r
 \r
 def_env.module = {};\r
-function def_env.module:load(name)\r
+function def_env.module:load(name, host, config)\r
        local mm = require "modulemanager";\r
-       local ok, err = mm.load(name);\r
+       local ok, err = mm.load(host or self.env.host, name, config);\r
        if not ok then\r
                return false, err or "Unknown error loading module";\r
        end\r
        return true, "Module loaded";\r
 end\r
 \r
+function def_env.module:unload(name, host)\r
+       local mm = require "modulemanager";\r
+       local ok, err = mm.unload(host or self.env.host, name);\r
+       if not ok then\r
+               return false, err or "Unknown error unloading module";\r
+       end\r
+       return true, "Module unloaded";\r
+end\r
+\r
 def_env.config = {};\r
 function def_env.config:load(filename, format)\r
        local config_load = require "core.configmanager".load;\r
@@ -163,3 +192,20 @@ end
 \r
 function def_env.hosts:add(name)\r
 end\r
+\r
+-------------\r
+\r
+function printbanner(session)\r
+session.print [[\r
+                   ____                \   /     _       \r
+                    |  _ \ _ __ ___  ___  _-_   __| |_   _ \r
+                    | |_) | '__/ _ \/ __|/ _ \ / _` | | | |\r
+                    |  __/| | | (_) \__ \ |_| | (_| | |_| |\r
+                    |_|   |_|  \___/|___/\___/ \__,_|\__, |\r
+                    A study in simplicity            |___/ \r
+\r
+]]\r
+session.print("Welcome to the Prosody administration console. For a list of commands, type: help");\r
+session.print("You may find more help on using this console in our online documentation at ");\r
+session.print("http://prosody.im/doc/console\n");\r
+end\r