Mercurial Hosting > luan
view web/src/luan/modules/web/web_shell.luan @ 325:78a6a71afbfd
use SimplyHTML
git-svn-id: https://luan-java.googlecode.com/svn/trunk@326 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Tue, 03 Mar 2015 06:00:59 +0000 |
parents | 7f7708e8fdd4 |
children | db37d6aee4db |
line wrap: on
line source
local Luan = require "luan:Luan" local ipairs = Luan.ipairs local load = Luan.load local Io = require "luan:Io" local print = Io.print local Debug = require "luan:Debug" local Http = require "luan:web/Http" local Html = require "luan:Html" per_session = true local history = {} local env = {} function service() if Http.request.parameters.clear ~= nil then history = {} else local cmd = Http.request.parameters.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 local line = load(cmd,"<web_shell>",env,true) Debug.print_if_something( line() ) catch e do Io.print_to(Io.stderr,e) print(e) end end end Io.stdout = Http.response.text_writer() Html.simple_html_page{ head = function() %> <title>Luan Shell</title> <% end; body = function() %> <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> <% end; } end