xref: /plan9/rc/bin/patch/diff (revision d1da931c1953c14f6f98c26297030a0b55cb02f6)
1#!/bin/rc
2# patch/diff [-w] patch-name
3rfork e
4fn usage {
5	echo 'usage: patch/diff [-bmnwz] patch-name' >[1=2]
6	exit usage
7}
8
9dopts=(-c)
10while (! ~ $#* 0 && ~ $1 -*) {
11	switch ($1) {
12	case -[bmnw]
13		dopts=($dopts $1)
14	case -z
15		dopts=()
16	case *
17		usage
18	}
19	shift
20}
21if(! ~ $#* 1)
22	usage
23
24if(! test -d /n/sources/patch){
25	rfork n
26	9fs sources
27}
28
29if(! test -d /n/sources/patch/$1){
30	echo 'no such patch' /n/sources/patch/$1 >[1=2]
31	exit nopatch
32}
33
34builtin cd /n/sources/patch/$1 || exit nopatch
35if(! patch/okay .){
36	echo 'bad patch: '$status >[1=2]
37	exit badpatch
38}
39
40d=/n/sources/patch/$1
41fn xxx {
42	echo $1
43	diff $dopts $2.orig $d/$2 | sed 's/^/	/'
44}
45cat files | sed 's/^/xxx /' | rc
46