Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

#!/bin/rc
# Usage: lookman key ...
#       prints out the names of all manual pages containing all the given keywords
rfork e
index=/sys/lib/man/lookman/index
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 ... >/fd/2
        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;/sys/man/;;
        s;(.*)/(.*);man \1 \2 # \2(\1);'
exit ''