Software /
code /
prosody
Comparison
plugins/mod_console.lua @ 411:64982773cc15
Some mod_console changes
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 25 Nov 2008 03:48:43 +0000 |
parent | 382:9daf1e3d278e |
child | 440:dee02bf4656a |
comparison
equal
deleted
inserted
replaced
410:5ce6801ad2e4 | 411:64982773cc15 |
---|---|
2 local connlisteners_register = require "net.connlisteners".register; | 2 local connlisteners_register = require "net.connlisteners".register; |
3 | 3 |
4 local console_listener = { default_port = 5582; default_mode = "*l"; }; | 4 local console_listener = { default_port = 5582; default_mode = "*l"; }; |
5 | 5 |
6 local commands = {}; | 6 local commands = {}; |
7 local default_env = {}; | 7 local def_env = {}; |
8 local default_env_mt = { __index = default_env }; | 8 local default_env_mt = { __index = def_env }; |
9 | 9 |
10 console = {}; | 10 console = {}; |
11 | 11 |
12 function console:new_session(conn) | 12 function console:new_session(conn) |
13 local w = conn.write; | 13 local w = conn.write; |
14 return { conn = conn; | 14 local session = { conn = conn; |
15 send = function (t) w(tostring(t)); end; | 15 send = function (t) w(tostring(t)); end; |
16 print = function (t) w("| "..tostring(t).."\n"); end; | 16 print = function (t) w("| "..tostring(t).."\n"); end; |
17 disconnect = function () conn.close(); end; | 17 disconnect = function () conn.close(); end; |
18 env = setmetatable({}, default_env_mt); | |
19 }; | 18 }; |
19 session.env = setmetatable({}, default_env_mt); | |
20 | |
21 -- Load up environment with helper objects | |
22 for name, t in pairs(def_env) do | |
23 if type(t) == "table" then | |
24 session.env[name] = setmetatable({ session = session }, { __index = t }); | |
25 end | |
26 end | |
27 | |
28 return session; | |
20 end | 29 end |
21 | 30 |
22 local sessions = {}; | 31 local sessions = {}; |
23 | 32 |
24 function console_listener.listener(conn, data) | 33 function console_listener.listener(conn, data) |
109 end | 118 end |
110 session.print("Sorry, not sure what you want"); | 119 session.print("Sorry, not sure what you want"); |
111 end | 120 end |
112 | 121 |
113 -- Session environment -- | 122 -- Session environment -- |
114 -- Anything in default_env will be accessible within the session as a global variable | 123 -- Anything in def_env will be accessible within the session as a global variable |
115 | 124 |
116 default_env.server = {}; | 125 def_env.server = {}; |
117 function default_env.server.reload() | 126 function def_env.server:reload() |
118 dofile "main.lua" | 127 dofile "main.lua" |
119 return true, "Server reloaded"; | 128 return true, "Server reloaded"; |
120 end | 129 end |
121 | 130 |
122 default_env.module = {}; | 131 def_env.module = {}; |
123 function default_env.module.load(name) | 132 function def_env.module:load(name) |
124 local mm = require "modulemanager"; | 133 local mm = require "modulemanager"; |
125 local ok, err = mm.load(name); | 134 local ok, err = mm.load(name); |
126 if not ok then | 135 if not ok then |
127 return false, err or "Unknown error loading module"; | 136 return false, err or "Unknown error loading module"; |
128 end | 137 end |
129 return true, "Module loaded"; | 138 return true, "Module loaded"; |
130 end | 139 end |
131 | 140 |
132 default_env.config = {}; | 141 def_env.config = {}; |
133 function default_env.config.load(filename, format) | 142 function def_env.config:load(filename, format) |
134 local cfgm_load = require "core.configmanager".load; | 143 local config_load = require "core.configmanager".load; |
135 local ok, err = cfgm_load(filename, format); | 144 local ok, err = config_load(filename, format); |
136 if not ok then | 145 if not ok then |
137 return false, err or "Unknown error loading config"; | 146 return false, err or "Unknown error loading config"; |
138 end | 147 end |
139 return true, "Config loaded"; | 148 return true, "Config loaded"; |
140 end | 149 end |
150 | |
151 function def_env.config:get(host, section, key) | |
152 local config_get = require "core.configmanager".get | |
153 return true, tostring(config_get(host, section, key)); | |
154 end | |
155 | |
156 def_env.hosts = {}; | |
157 function def_env.hosts:list() | |
158 for host, host_session in pairs(hosts) do | |
159 self.session.print(host); | |
160 end | |
161 return true, "Done"; | |
162 end | |
163 | |
164 function def_env.hosts:add(name) | |
165 end |