46 lines
681 B
Text
46 lines
681 B
Text
|
#!/bin/rc
|
||
|
# patch/diff [-w] patch-name
|
||
|
rfork e
|
||
|
fn usage {
|
||
|
echo 'usage: patch/diff [-bmnwz] patch-name' >[1=2]
|
||
|
exit usage
|
||
|
}
|
||
|
|
||
|
dopts=(-c)
|
||
|
while (! ~ $#* 0 && ~ $1 -*) {
|
||
|
switch ($1) {
|
||
|
case -[bmnw]
|
||
|
dopts=($dopts $1)
|
||
|
case -z
|
||
|
dopts=()
|
||
|
case *
|
||
|
usage
|
||
|
}
|
||
|
shift
|
||
|
}
|
||
|
if(! ~ $#* 1)
|
||
|
usage
|
||
|
|
||
|
if(! test -d /n/sources/patch){
|
||
|
rfork n
|
||
|
9fs sources
|
||
|
}
|
||
|
|
||
|
if(! test -d /n/sources/patch/$1){
|
||
|
echo 'no such patch' /n/sources/patch/$1 >[1=2]
|
||
|
exit nopatch
|
||
|
}
|
||
|
|
||
|
builtin cd /n/sources/patch/$1 || exit nopatch
|
||
|
if(! patch/okay .){
|
||
|
echo 'bad patch: '$status >[1=2]
|
||
|
exit badpatch
|
||
|
}
|
||
|
|
||
|
d=/n/sources/patch/$1
|
||
|
fn xxx {
|
||
|
echo $1
|
||
|
diff $dopts $2.orig $d/$2 | sed 's/^/ /'
|
||
|
}
|
||
|
cat files | sed 's/^/xxx /' | rc
|