swerc

anselm's simpler werc fork
git clone git://git.suckless.org/swerc
Log | Files | Refs | README

commit cc5e88069bbd84d7f958118b5b613498e49bae5a
parent 347f388872e327c063234a5a8198e092a69e8a4f
Author: uriel@engel.se.cat-v.org <unknown>
Date:   Sat, 24 Jan 2009 07:11:39 +0100

Add some comments and replace get_post_args with load_post_args
Diffstat:
Mapps/bridge/app.rc | 8+++++---
Mbin/cgilib.rc | 9++++-----
Mbin/werc.rc | 5+++--
Mlib/_debug.tpl | 29++++++++++++++++++++++++++---
Mlib/_users/login.tpl | 17+++++++++--------
5 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/apps/bridge/app.rc b/apps/bridge/app.rc @@ -1,4 +1,5 @@ fn bridge_init { + # XXX: Should avoid running for 404s, dir lists, etc. if(! ~ $#enable_comments 0) { ll_add handlers_body_foot bridge_body_foot if(get_post_args comment_text) { @@ -19,9 +20,10 @@ fn bridge_init { } umask 002 - mkdir -m 775 -p $d - echo $u > $d/user - echo $comment_text > $d/body + if(mkdir -m 775 -p $d) { # Rudimentary perm checking + echo $u > $d/user + echo $comment_text > $d/body + } } } diff --git a/bin/cgilib.rc b/bin/cgilib.rc @@ -186,11 +186,10 @@ fn login_user { # Check loggin status, if called with group arg we check membership too fn check_user { if(! get_user) - status='Not logged in:' $status - if not if(~ $#1 1 && ! grep -s '^'^$logged_user^'$' etc/groups/$1) - status=User $logged_user not in group $1 - if not - status=() + _status='Not logged in:' $status + if not if(! ~ $#* 0 && ! grep -s '^'^$logged_user^'$' etc/groups/$*) + _status=User $logged_user not in groups $* + status=$_status } # If not logged in, try to get user login info from POST or from cookie diff --git a/bin/werc.rc b/bin/werc.rc @@ -98,7 +98,8 @@ fn setup_handlers { if not if(test -f $local_path.txt) handler_body_main=(txt_handler $local_path.txt) - # Apps, XXX: Maybe we should check that $enabled_apps exist in $werc_apps. + # XXX Should check that $enabled_apps exist in $werc_apps? + # XXX Should split init of apps that provide main handler (eg., blog) and apps that don't (eg., comments)? if(! ~ $#enabled_apps 0) for(a in $enabled_apps) $a^'_init' @@ -162,7 +163,7 @@ ifs='/' { args=`{echo -n $req_path} } # Hack: preload post data so we can access it from templates where cgi's stdin is not accesible if(~ $REQUEST_METHOD POST) { - get_post_args + load_post_args login_user } diff --git a/lib/_debug.tpl b/lib/_debug.tpl @@ -1,6 +1,29 @@ -<pre> +% if(! ~ $#debug_shell 0) { +<form method="POST" name="prompt"> +<input type="text" name="command" /> +<input type="submit" Value="Run" /> +</form> +<script language="javascript"><!-- +document.prompt.command.focus() +//--></script> + +%{ +fn evl { + # Buffering is probably messing this up: + #rc -c 'flag x +;{'^$post_arg_command'} |[2] awk ''{print ">> "$0}''' + rc -c 'flag x +;'^$post_arg_command +} + if(! ~ $#post_arg_command 0 && ! ~ $#post_arg_command '') { + echo '<hr /><pre>' + evl | escape_html |[2] awk '{print "<b>"$0"</b>"}' + echo '</pre>' + } +%} +% } + +<hr /><pre> % env | escape_html ---------------------- +</pre><hr /> + % umask -</pre> diff --git a/lib/_users/login.tpl b/lib/_users/login.tpl @@ -1,13 +1,14 @@ -%{ - -if(check_user) - echo 'You are logged in as' $logged_user -if not if (~ $REQUEST_METHOD POST) - echo 'Login failed!' - -%} +<h1>User login</h1> +<br /> +% if(check_user) { + You are logged in as: <b>%($logged_user%)</b> +% } +% if not { +% if (~ $REQUEST_METHOD POST) +% echo 'Login failed!' <form method="POST"> User name: <input type="text" name="user_name" /><br /> User password: <input type="password" name="user_password" /><br /> <input name="s" type="submit" value="Login" /> </form> +% }