commit d264d6b3e67b61aa8554dc973a61cd0a8eecc3f8
parent 20d3168d32d57d568c98c8152478b5b7c0275e1a
Author: uriel@engel.se.cat-v.org <unknown>
Date: Sat, 20 Dec 2008 02:08:12 +0100
First bits of minimal 'modular' app framework, move some blog code out of werc.rc and other minnor code cleanups.
Diffstat:
2 files changed, 51 insertions(+), 25 deletions(-)
diff --git a/bin/cgilib.rc b/bin/cgilib.rc
@@ -237,9 +237,53 @@ fn make_blog_post {
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
diff --git a/bin/werc.rc b/bin/werc.rc
@@ -75,28 +75,6 @@ fn gensidebar {
}
}
-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 {
@@ -225,6 +203,10 @@ fn select_handler {
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 @@ if(test -f etc/initrc.local)
# 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} }