Mercurial Hosting > luan
view web/src/luan/modules/web/web_shell.luan @ 321:7f7708e8fdd4
remove import statement
git-svn-id: https://luan-java.googlecode.com/svn/trunk@322 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Sun, 08 Feb 2015 07:26:20 +0000 |
parents | 9fb523472035 |
children | 78a6a71afbfd |
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" per_session = true local history = {} local env = {} Io.stdout = {} function Io.stdout.write(...) for _,v in Luan.values(...) do history[#history+1] = v end end function service() if Http.request.parameters.clear ~= nil then history = {} else local cmd = Http.request.parameters.cmd if cmd ~= nil then 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 local write = Http.response.text_writer().write write(%> <!DOCTYPE html> <html lang="en"> <head> <title>Luan Shell</title> <style> body {font-family:'Arial',sans-serif;font-size:16px;padding:1em 2em} input {padding:.5em;border-radius:10px;border:1px solid #ccc;font-size:16px} input.btn {background:#3B619D;color:#FFF;padding:.3em 0;font-size:20px;min-width:4em;} h1 {font-weight:bold;font-size: 20px} p {margin:1em 0 .2em} </style> </head> <body> <h1>Luan Shell</h1> <p>This is a command shell. Enter commands below.</p> <pre><%) for _,v in ipairs(history) do write(v) end write(%></pre> <form name='form0' method='post'> % <input name='cmd' size="60"> <input type="submit" class="btn" value="run"> <input type="submit" class="btn" name="clear" value="clear"> </form> <script>document.form0.cmd.focus();</script> </body> </html> <%) end