#!/bin/rc
# Usage: lookman key ...
# prints out the names of all manual pages containing all the given keywords
rfork e
# Change these to match environment
sed=/usr/local/plan9port/bin/sed
MIRROR=/usr/share/mirror/plan9front
index=$MIRROR/sys/lib/man/lookman/index
LIB=$MIRROR/sys/man
t1=/tmp/look1.$pid
t2=/tmp/look2.$pid
fn sigexit {
rm -f $t1 $t2
exit
}
fn sigint sighup sigterm {
rm -f $t1 $t2
exit note
}
*=`{echo $*|tr A-Z a-z|tr -dc 'a-z0-9_. \012'} # fold case, delete funny chars
if(~ $#* 0){
echo Usage: lookman key ... >> /dev/stderr
exit usage
}
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;'$LIB'/;;
s;(.*)/(.*);man \1 \2 # \2(\1);'
exit ''