Mercurial Hosting > luan
diff http/src/luan/modules/http/shell.luan @ 505:7bc63886d4f2
web page modules now return a function
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 May 2015 01:45:49 -0600 |
parents | dbdf4b8193a8 |
children | 342964519194 |
line wrap: on
line diff
--- a/http/src/luan/modules/http/shell.luan Thu May 21 01:09:35 2015 -0600 +++ b/http/src/luan/modules/http/shell.luan Thu May 21 01:45:49 2015 -0600 @@ -1,72 +1,1 @@ -local Luan = require "luan:Luan" -local ipairs = Luan.ipairs -local load = Luan.load -local try = Luan.try -local Io = require "luan:Io" -local print = Io.print -local Debug = require "luan:Debug" -local Http = require "luan:http/Http" -local Html = require "luan:Html" - -local M = {} - -Http.per_session(M) - -local history = {} -M.env = {} - -function M.respond() - if Http.request.parameter.clear ~= nil then - history = {} - else - local cmd = Http.request.parameter.cmd - if cmd ~= nil then - Io.stdout = {} - function Io.stdout.write(...) - for v in Luan.values(...) do - history[#history+1] = v - end - end - print( "% "..cmd ) - try { - function() - local line = load(cmd,"<web_shell>",M.env,true) - Debug.print_if_something( line() ) - end; - catch = function(e) - Io.print_to(Io.stderr,e) - print(e) - end; - } - end - end - - Io.stdout = Http.response.text_writer() -%> -<html> - <head> - <% Html.simply_html_head() %> - <title>Luan Shell</title> - </head> - <body> - <div container> - <h3>Luan Shell</h3> - <p>This is a command shell. Enter commands below.</p> - <pre><% - for _,v in ipairs(history) do - Io.stdout.write(v) - end - %></pre> - <form name='form0' method='post'> - % <input name='cmd' size="80" autofocus> - <input type="submit" value="run" textcolor="white" bgcolor="#337ab7"> - <input type="submit" name="clear" value="clear" textcolor="white" bgcolor="#337ab7"> - </form> - </div> - <% Html.simply_html_body_bottom() %> - </body> -</html> -<% -end - -return M +return require("luan:http/ShellMod").respond