shithub: werc

Download patch

ref: a1da6cc55a75db8d780920e7af591a7e2dd731ff
parent: 2f73d1ccfe941f89ddb254d6fe4f094837d03309
author: uriel <[email protected]>
date: Thu Jan 8 22:08:02 EST 2009

Minor reorg of handler selection, move comment code to bridge app.

Bigger changes still to come.

--- /dev/null
+++ b/apps/bridge/app.rc
@@ -1,0 +1,26 @@
+fn bridge_init {
+    if(! ~ $#allowComments 0 && ~ $REQUEST_METHOD POST) {
+        get_post_args comment_text
+        d=`{date -n} # FIXME Obvious race
+        d=$local_path.md_werc/comments/$d/
+
+        u=$logged_user
+        if(~ $#logged_user 0) {
+            get_post_args comment_user_name comment_user_password
+            # TODO Should take this path too if the user can login but doesn't
+            # belong to required group
+            if(! login_user $comment_user_name $comment_user_password) {
+                u=$comment_user_name ':' $comment_user_password
+                d=$d^'_pending'
+            }
+            if not
+                u = $logged_user
+        }
+
+        umask 002
+        mkdir -m 775 -p $d
+        echo $u > $d/user
+        echo $comment_text > $d/body
+    }
+
+}
--- a/bin/werc.rc
+++ b/bin/werc.rc
@@ -93,32 +93,9 @@
 
 fn select_handler {
 
-    if(test -f $local_path.md) {
+    if(test -f $local_path.md)
         set_handler md_handler $local_path.md
-        if(! ~ $#allowComments 0 && ~ $REQUEST_METHOD POST) {
-            get_post_args comment_text
-            d=`{date -n} # FIXME Obvious race
-            d=$local_path.md_werc/comments/$d/
 
-            u=$logged_user
-            if(~ $#logged_user 0) {
-                get_post_args comment_user_name comment_user_password
-                # TODO Should take this path too if the user can login but doesn't
-                # belong to required group
-                if(! login_user $comment_user_name $comment_user_password) {
-                    u=$comment_user_name ':' $comment_user_password
-                    d=$d^'_pending'
-                }
-                if not
-                    u = $logged_user
-            }
-
-            umask 002
-            mkdir -m 775 -p $d
-            echo $u > $d/user
-            echo $comment_text > $d/body
-        }
-    }
     if not if(test -f $local_path.tpl)
         set_handler tpl_handler $local_path.tpl
 
@@ -125,11 +102,7 @@
     if not if(test -f $local_path.html)
         set_handler html_handler $local_path.html
 
-    # Explicit .html urls, unfortunately usually the web server will handle this as static files
-    if not if(~ $local_path *.html && test -f $local_path)
-        perm_redirect `{ echo $req_path|sed 's/.html$//' }
-
-    # Global tpl (eg sitemap.tpl)
+    # Global tpl (eg sitemap.tpl), should take precedence over txt handler!
     if not if(test -f lib^$req_path^.tpl)
         set_handler tpl_handler lib^$req_path^.tpl
 
@@ -143,6 +116,10 @@
     # Dir listing
     if not if(~ $local_path */index)
         set_handler dir_listing_handler $local_path
+
+    # Explicit .html urls, unfortunately usually the web server will handle this as static files
+    if not if(~ $local_path *.html && test -f $local_path)
+        perm_redirect `{ echo $req_path|sed 's/.html$//' }
 
     # File not found
     if not {