[BACK]Return to wtf CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / games / wtf

Annotation of src/games/wtf/wtf, Revision 1.16

1.1       mrg         1: #!/bin/sh
                      2: #
1.16    ! jschauma    3: #      $NetBSD: wtf,v 1.15 2007/08/06 21:14:36 hubertf Exp $
1.1       mrg         4: #
                      5: # Public domain
                      6: #
                      7:
1.14      hubertf     8: PROGNAME=`basename $0`
                      9:
1.9       jmmv       10: usage() {
1.14      hubertf    11:        echo "usage: $PROGNAME [-f dbfile] [is] <acronym>"
1.9       jmmv       12:        exit 1
                     13: }
                     14:
1.12      hubertf    15: args=`getopt f: $*`
1.9       jmmv       16: if [ $? -ne 0 ]; then
                     17:        usage
                     18: fi
                     19: set -- $args
                     20: while [ $# -gt 0 ]; do
                     21:        case "$1" in
                     22:                -f)
1.16    ! jschauma   23:                        acronyms="$2 $acronyms"; shift
1.11      jmmv       24:                        ;;
1.9       jmmv       25:                --)
                     26:                        shift; break
                     27:                        ;;
                     28:        esac
                     29:        shift
                     30: done
                     31:
1.12      hubertf    32: if [ "$1" = "is" ] ; then
1.1       mrg        33:        shift
                     34: fi
                     35:
                     36: if [ $# -lt 1 ] ; then
1.9       jmmv       37:        usage
                     38: fi
                     39:
1.16    ! jschauma   40: if [ "$acronyms" = "" ]; then
        !            41:        acronyms=${ACRONYMDB:-`ls /usr/share/misc/acronyms* 2>/dev/null`}
        !            42: fi
        !            43:
        !            44: if [ "$acronyms" = "" ]; then
        !            45:        echo "$PROGNAME: acronyms database not found!" >&2
        !            46:        exit 1
        !            47: fi
        !            48:
        !            49:
        !            50: for f in $acronyms ; do
1.12      hubertf    51:        if [ ! -f $f ]; then
1.14      hubertf    52:                echo "$PROGNAME: cannot open acronyms database file \`$f'" >&2
1.12      hubertf    53:                exit 1
                     54:        fi
                     55: done
1.1       mrg        56:
                     57: rv=0
                     58: while [ $# -gt 0 ] ; do
1.12      hubertf    59:        # Search acronyms list first
1.1       mrg        60:        target=`echo $1 | tr '[a-z]' '[A-Z]'`
1.14      hubertf    61:        ans=`fgrep -h $target $acronyms 2>/dev/null \
1.12      hubertf    62:             | sed -ne "\|^$target[[:space:]]|s|^$target[[:space:]]*||p"`
1.1       mrg        63:        if [ "$ans" != "" ] ; then
                     64:                echo "$target: $ans"
1.12      hubertf    65:                shift ; continue
1.1       mrg        66:        fi
1.12      hubertf    67:
                     68:        # Try whatis(1) next
                     69:        ans=`whatis $1 2>/dev/null`
                     70:        if [ $? -eq 0 ] ; then
1.14      hubertf    71:                echo "$ans" | sort -u
1.12      hubertf    72:                shift ; continue
                     73:        fi
                     74:
                     75:        # Try pkg_info(1) next
                     76:        ans=`pkg_info -qc $1 2> /dev/null`
                     77:        if [ $? -eq 0 ] ; then
                     78:                echo "$1: $ans"
                     79:                shift ; continue
                     80:        fi
                     81:
1.15      hubertf    82:        # Try querying pkgsrc's help facility next
                     83:        if [ -f ../../mk/bsd.pkg.mk ] ; then
                     84:                ans=`make help topic="$1"`
                     85:                if [ $? -eq 0 ] ; then
                     86:                        echo "$1: $ans"
                     87:                        shift ; continue
                     88:                fi
                     89:        fi
                     90:
1.12      hubertf    91:        # Give up!
1.14      hubertf    92:        echo "$PROGNAME: I don't know what $1 means!" 1>&2
1.12      hubertf    93:        rv=1
                     94:
1.1       mrg        95:        shift
                     96: done
                     97: exit $rv

CVSweb <webmaster@jp.NetBSD.org>