xref: /plan9/rc/bin/patch/undo (revision d1da931c1953c14f6f98c26297030a0b55cb02f6)
1ff8c3af2SDavid du Colombier#!/bin/rc
2ff8c3af2SDavid du Colombier
325f7656aSDavid du Colombierrfork e
4ff8c3af2SDavid du Colombierif(! ~ $#* 1){
5ff8c3af2SDavid du Colombier	echo 'usage: patch/undo patch-name' >[1=2]
6ff8c3af2SDavid du Colombier	exit usage
7ff8c3af2SDavid du Colombier}
8ff8c3af2SDavid du Colombier
9ff8c3af2SDavid du Colombierif(! test -d /n/sources/patch){
10ff8c3af2SDavid du Colombier	rfork n
11ff8c3af2SDavid du Colombier	9fs sources
12ff8c3af2SDavid du Colombier}
13ff8c3af2SDavid du Colombier
14ff8c3af2SDavid du Colombierif(! test -d /n/sources/patch/$1){
15ff8c3af2SDavid du Colombier	echo 'no such patch' /n/sources/patch/$1 >[1=2]
16ff8c3af2SDavid du Colombier	exit nopatch
17ff8c3af2SDavid du Colombier}
18ff8c3af2SDavid du Colombier
19ff8c3af2SDavid du Colombierd=$1
20*d1da931cSDavid du Colombierbuiltin cd /n/sources/patch/$1 || exit nopatch
21ff8c3af2SDavid du Colombierif(! patch/okay .){
22ff8c3af2SDavid du Colombier	echo 'bad patch: '$status >[1=2]
23ff8c3af2SDavid du Colombier	exit badpatch
24ff8c3af2SDavid du Colombier}
25ff8c3af2SDavid du Colombier
26ff8c3af2SDavid du Colombierfn xxx {
27ff8c3af2SDavid du Colombier	if(cmp $2.new $1){
28ff8c3af2SDavid du Colombier		echo cp /n/sources/patch/$d/$2.backup $1
29ff8c3af2SDavid du Colombier		cp $2.backup $1
30ff8c3af2SDavid du Colombier	}
31ff8c3af2SDavid du Colombier	if not
32ff8c3af2SDavid du Colombier		echo $1 has changed since patch was applied! >[2=1]
33ff8c3af2SDavid du Colombier}
34ff8c3af2SDavid du Colombiercat files | sed 's/^/xxx /' |rc
35ff8c3af2SDavid du Colombier
36