aboutsummaryrefslogtreecommitdiff
path: root/bin/lookman
blob: 8a29bb9430316a36f13ffe5fcb89a0e577687b86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/local/plan9/bin/rc

. 9.rc

# Usage: lookman key ...
#	prints out the names of all manual pages containing all the given keywords
index=$PLAN9/man/lookman.index
t1=/tmp/look1.$pid
t2=/tmp/look2.$pid
fn sigexit sigint sighup sigterm{
	rm -f $t1 $t2
	exit 1
}
*=`{echo $*|tr A-Z a-z|tr -dc 'a-z0-9_ \012'}	# fold case, delete funny chars
if(~ $#* 0){
	echo Usage: lookman key ... >/fd/2
	exit 1
}
look $1 $index|sed 's/.*	//'|sort -u >$t1
shift
for(i in $*){
	look $i $index|sed 's/.*	//'|sort -u|
		awk 'BEGIN {
			while (getline < "'$t1'" > 0) table[$0] = 1;
			}
			{ if (table[$0]) print }
			' > $t2
	mv $t2 $t1
}
sort $t1 | sed 's;/.*/man/man[0-9]*/;;
	s;(.*)\.(.*);man \2 \1 # \1(\2);'
rm -f $t1 $t2
exit 0