annotate http/src/luan/modules/http/Shell_mod.luan @ 560:2f39468680be

remove SimplyHTML from shell
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 23 Jun 2015 07:57:10 -0600
parents 18504c41b0be
children 24b05963ba62
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
321
7f7708e8fdd4 remove import statement
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 300
diff changeset
1 local Luan = require "luan:Luan"
554
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 506
diff changeset
2 local error = Luan.error
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 506
diff changeset
3 local ipairs = Luan.ipairs or error()
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 506
diff changeset
4 local load = Luan.load or error()
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 506
diff changeset
5 local try = Luan.try or error()
321
7f7708e8fdd4 remove import statement
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 300
diff changeset
6 local Io = require "luan:Io"
554
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 506
diff changeset
7 local print = Io.print or error()
494
2b9bc97f0439 change luan:web to luan:http
Franklin Schmidt <fschmidt@gmail.com>
parents: 493
diff changeset
8 local Http = require "luan:http/Http"
560
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
9
139
3b384dc5ca91 replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
10
503
92c3d22745b8 make _ENV optional
Franklin Schmidt <fschmidt@gmail.com>
parents: 497
diff changeset
11 local M = {}
92c3d22745b8 make _ENV optional
Franklin Schmidt <fschmidt@gmail.com>
parents: 497
diff changeset
12
139
3b384dc5ca91 replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
13 local history = {}
503
92c3d22745b8 make _ENV optional
Franklin Schmidt <fschmidt@gmail.com>
parents: 497
diff changeset
14 M.env = {}
139
3b384dc5ca91 replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
15
503
92c3d22745b8 make _ENV optional
Franklin Schmidt <fschmidt@gmail.com>
parents: 497
diff changeset
16 function M.respond()
497
55f9f74f1e55 Http.request is now pure luan
Franklin Schmidt <fschmidt@gmail.com>
parents: 495
diff changeset
17 if Http.request.parameter.clear ~= nil then
139
3b384dc5ca91 replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
18 history = {}
3b384dc5ca91 replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
19 else
497
55f9f74f1e55 Http.request is now pure luan
Franklin Schmidt <fschmidt@gmail.com>
parents: 495
diff changeset
20 local cmd = Http.request.parameter.cmd
139
3b384dc5ca91 replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
21 if cmd ~= nil then
325
78a6a71afbfd use SimplyHTML
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 321
diff changeset
22 Io.stdout = {}
78a6a71afbfd use SimplyHTML
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 321
diff changeset
23 function Io.stdout.write(...)
402
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents: 399
diff changeset
24 for v in Luan.values(...) do
325
78a6a71afbfd use SimplyHTML
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 321
diff changeset
25 history[#history+1] = v
78a6a71afbfd use SimplyHTML
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 321
diff changeset
26 end
78a6a71afbfd use SimplyHTML
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 321
diff changeset
27 end
139
3b384dc5ca91 replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
28 print( "% "..cmd )
326
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 325
diff changeset
29 try {
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 325
diff changeset
30 function()
503
92c3d22745b8 make _ENV optional
Franklin Schmidt <fschmidt@gmail.com>
parents: 497
diff changeset
31 local line = load(cmd,"<web_shell>",M.env,true)
554
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 506
diff changeset
32 print( line() )
326
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 325
diff changeset
33 end;
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 325
diff changeset
34 catch = function(e)
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 325
diff changeset
35 Io.print_to(Io.stderr,e)
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 325
diff changeset
36 print(e)
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 325
diff changeset
37 end;
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 325
diff changeset
38 }
139
3b384dc5ca91 replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
39 end
3b384dc5ca91 replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
40 end
3b384dc5ca91 replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
41
325
78a6a71afbfd use SimplyHTML
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 321
diff changeset
42 Io.stdout = Http.response.text_writer()
391
2f5cc9c2cbf0 replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents: 347
diff changeset
43 %>
2f5cc9c2cbf0 replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents: 347
diff changeset
44 <html>
2f5cc9c2cbf0 replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents: 347
diff changeset
45 <head>
2f5cc9c2cbf0 replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents: 347
diff changeset
46 <title>Luan Shell</title>
560
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
47 <style>
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
48 body {
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
49 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
50 margin: 2em 5% 0 5%;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
51 }
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
52 pre {
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
53 font: inherit;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
54 }
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
55 input[type="text"] {
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
56 font: inherit;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
57 padding: .5em .8em;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
58 border-radius: 8px;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
59 border-style: groove;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
60 }
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
61 input[type="text"]:focus {
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
62 border-color: #66afe9;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
63 outline: none;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
64 }
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
65 input[type="submit"] {
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
66 color: white;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
67 background: #337ab7;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
68 border-color: #337ab7;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
69 font: inherit;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
70 padding: .5em;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
71 border-radius: 4px;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
72 }
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
73 input[type="submit"]:hover {
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
74 background: #236aa7 !important;
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
75 }
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
76 </style>
391
2f5cc9c2cbf0 replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents: 347
diff changeset
77 </head>
2f5cc9c2cbf0 replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents: 347
diff changeset
78 <body>
560
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
79 <h2>Luan Shell</h2>
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
80 <p>This is a command shell. Enter commands below.</p>
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
81 <pre><%
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
82 for _,v in ipairs(history) do
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
83 Io.stdout.write(v)
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
84 end
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
85 %></pre>
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
86 <form name='form0' method='post'>
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
87 % <input type="text" name='cmd' size="80" autofocus>
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
88 <input type="submit" value="run">
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
89 <input type="submit" name="clear" value="clear">
2f39468680be remove SimplyHTML from shell
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
90 </form>
391
2f5cc9c2cbf0 replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents: 347
diff changeset
91 </body>
2f5cc9c2cbf0 replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents: 347
diff changeset
92 </html>
2f5cc9c2cbf0 replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents: 347
diff changeset
93 <%
139
3b384dc5ca91 replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
94 end
503
92c3d22745b8 make _ENV optional
Franklin Schmidt <fschmidt@gmail.com>
parents: 497
diff changeset
95
505
7bc63886d4f2 web page modules now return a function
Franklin Schmidt <fschmidt@gmail.com>
parents: 504
diff changeset
96 Http.per_session(M.respond)
7bc63886d4f2 web page modules now return a function
Franklin Schmidt <fschmidt@gmail.com>
parents: 504
diff changeset
97
503
92c3d22745b8 make _ENV optional
Franklin Schmidt <fschmidt@gmail.com>
parents: 497
diff changeset
98 return M