#!/bin/rc rfork n fn usage { echo usage: patchlsub [-r] >[1=2] exit } addr=patches.lsub.org dir=/n/$addr/patch dst=/tmp/lsub if(~ $#* 1 && ~ $1 -r){ if(test -e $dst){ rm -rf $dst } mkdir $dst shift } if(! ~ $#* 0){ usage } if(! test -d $dst){ destination $dst does not exist exit } if(! test -d $dir){ 9fs $addr if(! ~ $status ''){ echo $status exit } } lst=`{ls -tr $dir} if(test -f $dst/*.diff){ j=`{ls $dst/*.diff | tail -1 | sed 's,.*/([0-9])+-.*,\1,'} } if not{ j=0 } for(i in $lst){ n=`{basename $i} if(! test -f $dst/*-$n.diff){ j=`{echo $j+1 | bc} if(test $j -le 9){ j=000$j; } if not if(test $j -le 99){ j=00$j; } if not if(test $j -le 999){ j=0$j; } patch2diff $i > $dst/$j-$n.diff } }