#!/bin/rc . /sys/lib/shithub/common.rc fn rssitem { puser=$1 prepo=$2 phash=$3 d=`{pwd} guid='http://'^$host/git/$puser/$prepo/commit/$phash message=`{htcat $gitfs/object/$phash/msg | sed 1q} description=`''{htcat $gitfs/object/$phash/msg} date=`{date -uf$dfmt `{mtime $gitfs/object/$phash/msg |awk '{print $1}'}} author=`"{sed 's/(.*) <(.*)>/\2 (\1)/g' < $gitfs/object/$phash/author} echo ' '$"guid' '$"date' '$"message' '$"author' '$guid' '$description' ]]> ' cd $d } cd $1 shift rfork ne nl=' ' gituser=$1 repo=$2 refname=HEAD dfmt='WW, DD MMM YYYY hh:mm:ss Z' repons $gituser $repo repodir=/mnt/$repo/.git if(! ref=`{resolveref $refname}){ echo 'invalid ref '$refname'' exit } if(test -f $gitfs/$ref/hash) hash=`{cat $gitfs/$ref/hash} if not hash=$ref http_response 'application/rss+xml' echo ' '$gituser/$repo' git log http://'$host'/git/'$gituser/$repo/'log/HEAD shithub git/log for repository '$gituser/$repo' '`"{date -uf$dfmt}' en-us ' if(! test -d $gitfs/$ref/tree){ echo ' ' exit } cd $gitfs/$ref/tree commithash=`{cat $gitfs/HEAD/hash | sed 1q} count=() while (! ~ $#commithash 0 && ! ~ $#count 10) { count=($count 1) rssitem $gituser $repo $commithash commithash=`{cat $gitfs/object/$commithash/parent | sed 1q} } echo ' '