ref: c412aedaf36131c9dd5c77a6475b549ac8182be0
parent: cade4179643fe9c2e4f1f764abe323e9178f41d7
	author: uriel <uriel@engel.se.cat-v.org>
	date: Fri Dec 19 21:08:12 EST 2008
	
First bits of minimal 'modular' app framework, move some blog code out of werc.rc and other minnor code cleanups.
--- a/bin/cgilib.rc
+++ b/bin/cgilib.rc
@@ -237,9 +237,53 @@
status=Missing blog post arguments $1 $2 $3
}
+fn sortedBlogPostList {+ # the /./->/|/ are added so we can sort -t| and order only the file name
+ # NOTE: this breaks if any path element in blogDirs contain '/./' or '|'
+ if (! ~ $#* 0)
+ ls $*^'/./' | sed -n 's,/\./,/|/,; /\/[0-9]+.*\.md$/p' | sort -r '-t|' +1 | sed 's,/+\|/+,/,'
+}
-# --------
-#
+fn gen_blog_post_title {+    title=`{basename $1 | sed 's/^[0-9\-]*_(.*)\.md$/\1/; s/_/ /g' }+    permlink= `{echo $1 | sed 's,^/[a-z/]*www/,/,; s,^sites/[^/]*/*/,/,; s/\.md$//' }+    du=`{ls -l $1}+ by = ''
+    if (! ~ $#blogAuthor 0) {+ if (! ~ $blogAuthor '')
+ by='By '$"blogAuthor
+ }
+ if not if (~ $#blogDirs 1)
+ by='By '$du(4)
+ echo '##<a href="'^$"permlink^'">' $"title^'</a> *( '$by Last mod: $du(7 8 9) ' )*'
+}
+
+
+###################################
+# App framework
+
+
+app_list = ( hello )
+
+fn select_apps {+ found = ()
+    for(a in $app_list) {+ . ./apps/$a/app.rc
+        if($a^'_test') {+ $a^'_setup'
+ found = yes
+ }
+ }
+
+ ~ $#found 1 # Set status
+}
+
+fn app_handler {+ $app_body_handler
+
+}
+
+
#app_blog_methods = ( _post index.rss )
 #fn app_blog__post {# echo
--- a/bin/werc.rc
+++ b/bin/werc.rc
@@ -75,29 +75,7 @@
}
}
-fn sortedBlogPostList {- # the /./->/|/ are added so we can sort -t| and order only the file name
- # NOTE: this breaks if any path element in blogDirs contain '/./' or '|'
- if (! ~ $#* 0)
- ls $*^'/./' | sed -n 's,/\./,/|/,; /\/[0-9]+.*\.md$/p' | sort -r '-t|' +1 | sed 's,/+\|/+,/,'
-}
-fn gen_blog_post_title {-    title=`{basename $1 | sed 's/^[0-9\-]*_(.*)\.md$/\1/; s/_/ /g' }-    permlink= `{echo $1 | sed 's,^/[a-z/]*www/,/,; s,^sites/[^/]*/*/,/,; s/\.md$//' }-    du=`{ls -l $1}- by = ''
-    if (! ~ $#blogAuthor 0) {- if (! ~ $blogAuthor '')
- by='By '$"blogAuthor
- }
- if not if (~ $#blogDirs 1)
- by='By '$du(4)
- echo '##<a href="'^$"permlink^'">' $"title^'</a> *( '$by Last mod: $du(7 8 9) ' )*'
-}
-
-
-
# Handlers
 fn set_handler {handler = $1
@@ -225,6 +203,10 @@
if not if(~ $body */index)
set_handler dir_listing_handler $body
+ # Apps
+ if not if(select_apps)
+ set_handler app_handler
+
# File not found
     if not {set_handler 404_handler $body
@@ -258,7 +240,7 @@
# Parse request URL
-uri = `{echo -n $REQUEST_URI | sed -e 's/\?.*//; s/'^$forbidden_uri_chars^'//g; s/\.\.*/./g;' -e '1q'}+uri = `{echo -n $REQUEST_URI | sed 's/\?.*//; s/'^$forbidden_uri_chars^'//g; s/\.\.*/./g; 1q'} ifs='/' { args = `{echo -n $uri} }--
⑨