From 84cb6ce694c9a908fcefd202c68b789b2f335df7 Mon Sep 17 00:00:00 2001 From: Waqas Hussain Date: Mon, 26 Jul 2010 01:52:04 +0500 Subject: mod_console: Override dofile() in the console environment (this lets print() print to the console session for example). --- plugins/mod_console.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/mod_console.lua b/plugins/mod_console.lua index 20d04afe..ab47c52f 100644 --- a/plugins/mod_console.lua +++ b/plugins/mod_console.lua @@ -27,7 +27,13 @@ local default_env_mt = { __index = def_env }; prosody.console = { commands = commands, env = def_env }; local function redirect_output(_G, session) - return setmetatable({ print = session.print }, { __index = function (t, k) return rawget(_G, k); end, __newindex = function (t, k, v) rawset(_G, k, v); end }); + local env = setmetatable({ print = session.print }, { __index = function (t, k) return rawget(_G, k); end, __newindex = function (t, k, v) rawset(_G, k, v); end }); + env.dofile = function(name) + local f, err = loadfile(name); + if not f then return f, err; end + return setfenv(f, env)(); + end; + return env; end console = {}; -- cgit v1.2.3