From ecaf62f2d6d392982a2632c48c5998ebc617415f Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Mon, 4 Jun 2007 05:41:28 +0200 Subject: [PATCH] Added rss to controller. --- bin/controller.rc | 58 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/bin/controller.rc b/bin/controller.rc index 4dd6778..a0a81c7 100755 --- a/bin/controller.rc +++ b/bin/controller.rc @@ -7,7 +7,6 @@ ifs='/' { } cd .. - # default config site=$SERVER_NAME sitedir=sites/$site @@ -18,7 +17,8 @@ siteSubTitle='' title='' template=_default sidebar=sidebar - +basedir=/gsoc/www +baseuri=http://$site # Title fn gentitle { @@ -118,13 +118,63 @@ for ( i in '' $args ) { } template=$sitedir/$template.tpl -echo body: $body; echo body: $sitedir/$body; ls $sitedir/$body body=$sitedir/$body if (! ~ $#sidebar 0) sidebar=tpl/_inc/$sidebar.tpl if (test -d $body) body=$body/index +# RSS +fn statpost { + f = $1 + uri = `{echo $f | sed 's,^'$basedir',,'} + title=`{basename $f | sed 's/^[0-9\-]*_(.*)\.md$/\1/; s/_/ /g' } + stat=`{stat -c '%Y %U' $f} + date=`{/bin/date -Rd @$stat(1)} + uri=$baseuri^`{cleanname $uri} + by=$stat(2) + ifs=() { + summary=`{awk -v max'='1024 '{ + nc += 1 + length; + if(nc > max) { + print substr($0, 1, nc - max) "..." + exit + } + print + }' $f | sed 's/\]\]>/Fucking goddamn XML garbage/g'} + } +} -cat $headers $template | template.awk | rc +if(! ~ $REQUEST_URI */index.rss) { + cat $headers $template | template.awk | rc + exit +} + +uri = `{echo $uri | sed 's/indexrss$//'} +uri=$baseuri$"uri + +# Should be in a separate file. +cat <<'!' | template.awk | rc + + + + %($blogTitle%) + %($uri%) + %($blogDesc%) + en-us + Tom Duff's rc, and Kris Maglione's clever hackery + Uriel %lt;uriel99@gmail.com> +%{ + for(f in `{sortedBlogPostList $blogDirs}) { + statpost $f +%} + %($title%) + %($by%) + %($uri%) + %($date%) + + +% } + +!