changeset 5:2f20b11affdd

add tools
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 21 Jun 2022 21:39:27 -0600
parents a17e400ddaa1
children 9166f6a14021
files src/lib/Shared.luan src/private/admin.html.luan src/private/tools/run.luan src/private/tools/shell.html.luan src/site.css src/tools/cookies.html.luan src/tools/dimensions.html src/tools/request.txt.luan
diffstat 8 files changed, 119 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/Shared.luan	Tue Jun 21 11:58:27 2022 -0600
+++ b/src/lib/Shared.luan	Tue Jun 21 21:39:27 2022 -0600
@@ -23,7 +23,6 @@
 %>
 		<div header>
 			<a href="/"><%=Forum.title%></a>
-			-
 <%	if user == nil then %>
 			<a href="/login.html">login</a>
 <%	else %>
--- a/src/private/admin.html.luan	Tue Jun 21 11:58:27 2022 -0600
+++ b/src/private/admin.html.luan	Tue Jun 21 21:39:27 2022 -0600
@@ -26,6 +26,11 @@
 
 			<h2>Tools</h2>
 			<p><a href="tools/lucene.html">lucene</a></p>
+			<p><a href="tools/shell.html">luan shell</a></p>
+			<p><a href="tools/run">luan batch</a></p>
+			<p><a href="/tools/cookies.html">cookies</a></p>
+			<p><a href="/tools/dimensions.html">dimensions</a></p>
+			<p><a href="/tools/request.txt">request</a></p>
 		</div>
 	</body>
 </html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/private/tools/run.luan	Tue Jun 21 21:39:27 2022 -0600
@@ -0,0 +1,1 @@
+return require("luan:http/tools/Run.luan").respond
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/private/tools/shell.html.luan	Tue Jun 21 21:39:27 2022 -0600
@@ -0,0 +1,1 @@
+return require("luan:http/tools/Shell.luan").respond
--- a/src/site.css	Tue Jun 21 11:58:27 2022 -0600
+++ b/src/site.css	Tue Jun 21 21:39:27 2022 -0600
@@ -2,9 +2,28 @@
  	box-sizing: border-box;
 }
 
+body {
+	font-family: Sans-Serif;
+	margin: 0;
+}
+
 a {
 	text-decoration: none;
 }
 a:hover {
 	text-decoration: underline;
 }
+
+div[header], div[footer] {
+	font-size: 14px;
+	background-color: #ddd;
+	padding: 8px 3%;
+	display: flex;
+	justify-content: space-between;
+}
+
+[content] {
+	margin-left: 3%;
+	margin-right: 3%;
+	margin-bottom: 2em;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/tools/cookies.html.luan	Tue Jun 21 21:39:27 2022 -0600
@@ -0,0 +1,62 @@
+local Luan = require "luan:Luan.luan"
+local error = Luan.error
+local pairs = Luan.pairs or error()
+local Html = require "luan:Html.luan"
+local html_encode = Html.encode or error()
+local Io = require "luan:Io.luan"
+local Http = require "luan:http/Http.luan"
+local Logging = require "luan:logging/Logging.luan"
+local logger = Logging.logger "cookies.html"
+
+
+return function()
+	local name = Http.request.parameters.name
+	if name ~= nil then
+		local value = Http.request.parameters.value
+		local persistent = Http.request.parameters.persistent
+		if #value == 0 then
+			Http.response.remove_cookie(name)
+		elseif persistent ~= nil then
+			Http.response.set_persistent_cookie(name,value)
+		else
+			Http.response.set_cookie(name,value)
+		end
+		Http.response.send_redirect "cookies.html"
+		return
+	end
+
+	Io.stdout = Http.response.text_writer()
+%>
+<!doctype html>
+<html>
+	<head>
+		<meta name="viewport" content="width=device-width, initial-scale=1">
+		<style>
+			form {
+				margin-bottom: 16px;
+			}
+		</style>
+	</head>
+	<body>
+		<h2>Cookies Tool</h2>
+<%
+	for name, value in pairs(Http.request.cookies) do
+		name = html_encode(name)
+		value = html_encode(value)
+%>
+		<form>
+			<input name=name value="<%=name%>" type=hidden>
+			<%=name%> = <input name=value value="<%=value%>" size=100>
+			<label><input type=checkbox name=persistent>persistent</label>
+		</form>
+<%	end %>
+		<form>
+			<input name=name>
+			= <input name=value size=100>
+			<label><input type=checkbox name=persistent>persistent</label>
+			<input type=submit>
+		</form>
+	</body>
+</html>
+<%
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/tools/dimensions.html	Tue Jun 21 21:39:27 2022 -0600
@@ -0,0 +1,19 @@
+<!doctype html>
+<html>
+	<head>
+		<meta name="viewport" content="width=device-width, initial-scale=1">
+		<script>
+			function p() {
+				document.body.innerText = ''
+					+ window.innerWidth + 'px innerWidth\n' 
+					+ window.innerHeight + 'px innerHeight\n'
+					+ '\n'
+					+ window.outerWidth + 'px outerWidth\n' 
+					+ window.outerHeight + 'px outerHeight\n'
+				;
+			}
+		</script>
+	</head>
+	<body onload="p()" onresize="p()">
+	</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/tools/request.txt.luan	Tue Jun 21 21:39:27 2022 -0600
@@ -0,0 +1,12 @@
+local Binary = require "luan:Binary.luan"
+local Io = require "luan:Io.luan"
+local Http = require "luan:http/Http.luan"
+
+
+return function()
+	Io.stdout = Http.response.text_writer()
+	%><%= Http.request.raw_head %><%
+	if Http.request.body ~= nil then
+		%><%=Binary.to_string(Http.request.body,"utf-8")%><%
+	end
+end