xref: /plan9/rc/bin/patch/list (revision 27acba7cf6d37c65abba4ecf8ad572a5980447ad)
1ff8c3af2SDavid du Colombier#!/bin/rc
2ff8c3af2SDavid du Colombier
325f7656aSDavid du Colombierrfork e
4ff8c3af2SDavid du Colombierif(! test -d /n/sources/patch){
5ff8c3af2SDavid du Colombier	rfork n
6ff8c3af2SDavid du Colombier	9fs sources
7ff8c3af2SDavid du Colombier}
8ff8c3af2SDavid du Colombier
9e0d6d19cSDavid du Colombierpref=''
10d1da931cSDavid du Colombierbuiltin cd /n/sources/patch || {
11c9c4220fSDavid du Colombier	echo 'can''t cd /n/sources/patch' >[2=1]
12c9c4220fSDavid du Colombier	exit no-sources
13c9c4220fSDavid du Colombier}
14c9c4220fSDavid du Colombier
15*27acba7cSDavid du Colombierif(~ $1 applied saved sorry maybe bad){
16e0d6d19cSDavid du Colombier	pref=$1^'/'
17e0d6d19cSDavid du Colombier	shift
18e0d6d19cSDavid du Colombier}
19ff8c3af2SDavid du Colombierif(~ $#* 0)
20d1da931cSDavid du Colombier	*=(`{
21d1da931cSDavid du Colombier		if(~ $pref *?*)
22d1da931cSDavid du Colombier			builtin cd $pref
23*27acba7cSDavid du Colombier		ls -t | grep -v '^(applied|saved|sorry|maybe|bad)$'
24d1da931cSDavid du Colombier	})
25ff8c3af2SDavid du Colombier
26e0d6d19cSDavid du Colombiertrunc=(sed 5q)
27e0d6d19cSDavid du Colombierif(~ $#* 1)
28e0d6d19cSDavid du Colombier	trunc=cat
29e0d6d19cSDavid du Colombier
30e0d6d19cSDavid du Colombier{
31ff8c3af2SDavid du Colombierfor(i in $*){
32e0d6d19cSDavid du Colombier	i=$pref^$i
33e0d6d19cSDavid du Colombier	if(test -f $i/origls)
34e0d6d19cSDavid du Colombier		cat $i/origls | awk '{$NF="'$i'"; print}'
35e0d6d19cSDavid du Colombier	if not
36ff8c3af2SDavid du Colombier		ls -ld $i
37ff8c3af2SDavid du Colombier	if(patch/okay $i){
38603dff34SDavid du Colombier		if(test -r $i/email)
39603dff34SDavid du Colombier			echo from `{cat $i/email}
40ff8c3af2SDavid du Colombier		cat $i/files | awk '{print "	" $1}'
41e0d6d19cSDavid du Colombier		cat $i/readme | sed 's/^/	/' | $trunc
42f9247424SDavid du Colombier		if(test -f $i/notes){
43f9247424SDavid du Colombier			echo
44ff8c3af2SDavid du Colombier			cat $i/notes
45ff8c3af2SDavid du Colombier		}
46f9247424SDavid du Colombier	}
47ff8c3af2SDavid du Colombier	if not
48ff8c3af2SDavid du Colombier		echo '	'bad patch: $status >[2=1]
49e0d6d19cSDavid du Colombier	echo
50ff8c3af2SDavid du Colombier}
51e0d6d19cSDavid du Colombier} >/tmp/patchtmp.$pid
52e0d6d19cSDavid du Colombier
53e0d6d19cSDavid du Colombiercat /tmp/patchtmp.$pid
54e0d6d19cSDavid du Colombierrm -f /tmp/patchtmp.$pid
55