summaryrefslogtreecommitdiffstats
path: root/main.txr
diff options
context:
space:
mode:
Diffstat (limited to 'main.txr')
-rwxr-xr-xmain.txr79
1 files changed, 79 insertions, 0 deletions
diff --git a/main.txr b/main.txr
new file mode 100755
index 0000000..cc364c7
--- /dev/null
+++ b/main.txr
@@ -0,0 +1,79 @@
+#!/usr/local/bin/txr
+@(next :args)
+@(bind debug-enable t)
+@(load "logging")
+@(load "headers")
+@(load "auth")
+@(load "session")
+@(load "lockdir")
+@(load "random")
+@(load "aliases")
+@(load "login-form")
+@(load "error-form")
+@(load "alias-list-form")
+@(load "edit-memo-form")
+@(load "startup")
+@(bind csslink "")
+@(do (randomize))
+@(startup domain)
+@(next :env)
+@(gather :vars (clientip (cookie-userid nil) (cookie-sessid nil)))
+REMOTE_ADDR=@clientip
+@(sess-cookie cookie-userid cookie-sessid)
+@(end)
+@(check-session session-valid-p cookie-userid cookie-sessid clientip)
+@(next :env)
+@(if session-valid-p)
+@ (skip)
+@ (cases)
+QUERY_STRING=logout
+@ (remove-session cookie-userid)
+@ (login-form "Logged out; you may log in again.")
+@ (or)
+QUERY_STRING=update-aliases
+@ (next *stdin*)
+@postdata
+@ (cases)
+@ (update-aliases cookie-userid postdata)
+@ (alias-list-form cookie-userid)
+@ (or)
+@ (error-form "Invalid input" `Unable to parse POST data: @postdata`)
+@ (end)
+@ (or)
+QUERY_STRING=edit=@{edit-alias}
+@ (edit-memo-form cookie-userid edit-alias)
+@ (or)
+QUERY_STRING=update-memo&@{edit-alias}
+@ (cases)
+@ (next *stdin*)
+memo=@{new-memo}&@(skip)
+@ (update-memo cookie-userid edit-alias new-memo)
+@ (or)
+@ (error-form "Invalid input" `Unable to parse POST data`)
+@ (end)
+@ (or)
+QUERY_STRING=@(skip)
+@ (alias-list-form cookie-userid)
+@ (end)
+@(else)
+@ (skip)
+@ (cases)
+QUERY_STRING=auth
+@ (cases)
+@ (next *stdin*)
+userid=@userid&password=@password
+@ (set password @(url-decode password))
+@ (auth userid password)
+@ (ensure-session userid clientip)
+@ (alias-list-form userid)
+@ (or)
+@ (login-form "Invalid login; try again!")
+@ (end)
+@ (or)
+QUERY_STRING=@(skip)
+@ (login-form @(if cookie-userid
+ "Invalid or expired session; Please log in."
+ "Please log in."))
+@ (end)
+@(end)
+@(do (save-random-state))