#!/bin/rc infernosvn='http://inferno-os.googlecode.com/svn/trunk' fn getdir { rev=`{hget $1 | htmlfmt -a -l 1000 | grep Revision |awk '{print $2}' | sed 's/://g'} if ( test -r $rev ) { update=no; echo $1^':'^$rev^':Update not needed'} if not { update=yes; echo $1^':'^$rev^': Updating'} ls=`{hget $1 | htmlfmt -a -l 1000 | awk '{print $2}' | sed 's/[\[\]]//g' | sed '/^$/d' | sed '/\.\.\//d' | sed '/:$/d'} for (f in $ls) { name=`{basename $f} dir=`{basename -d $f | sed '/\./d'} if (test $dir) { mkdir -p $dir cd $dir getdir $1^'/'^$dir cd .. } if (test $name) { if (~ $update yes) { hget -o $name $1^'/'^$name >/dev/null >[2=1] } } } if (~ $update yes) { touch $rev } } if(! ~ $#* 1) { echo usage: echo ' gsvn [ site | http://project.googlecode.com/svn/trunk ]' exit } switch($1){ case inferno getdir $infernosvn exit case * getdir $1 exit }