#!/bin/rc rfork n fn usage { echo usage: patchsources [-r] >[1=2] exit } addr=sources src=/n/$addr/patch dst=/tmp/sources 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 $src){ 9fs $addr if(! ~ $status ''){ echo $status exit } } repo=( \ . \ bad \ maybe \ saved \ sorry \ applied \ ) for(r in $repo){ if(! test -d $dst/$r) { mkdir $dst/$r } lst=`{ls -tr $src/$r} for(i in $lst){ s=`{cleanname $i} n=`{basename $i} diff=$dst/$r/$n.diff if(! test -f $diff && test -f $s/readme) { patch2diff $s > $diff if(! test -s $diff){ rm $diff } } } } for(i in $dst/*.diff) { n=`{basename $i | sed s,.diff,,} if(! test -d $src/$n){ rm $i } }