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