1 #!/bin/sh -
   2 #
   3 # CDDL HEADER START
   4 #
   5 # The contents of this file are subject to the terms of the
   6 # Common Development and Distribution License (the "License").
   7 # You may not use this file except in compliance with the License.
   8 #
   9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  10 # or http://www.opensolaris.org/os/licensing.
  11 # See the License for the specific language governing permissions
  12 # and limitations under the License.
  13 #
  14 # When distributing Covered Code, include this CDDL HEADER in each
  15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16 # If applicable, add the following below this CDDL HEADER, with the
  17 # fields enclosed by brackets "[]" replaced with your own identifying
  18 # information: Portions Copyright [yyyy] [name of copyright owner]
  19 #
  20 # CDDL HEADER END
  21 #
  22 #
  23 # Copyright (c) 1990, 2010, Oracle and/or its affiliates. All rights reserved.
  24 #
  25 #       Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  26 #         All Rights Reserved
  27 #
  28 
  29 # University Copyright- Copyright (c) 1982, 1986, 1988
  30 # The Regents of the University of California
  31 # All Rights Reserved
  32 #
  33 # University Acknowledgment- Portions of this document are derived from
  34 # software developed by the University of California, Berkeley, and its
  35 # contributors
  36 
  37 PATH=/usr/xpg4/bin:$PATH
  38 
  39 tmpdir=/tmp/whatis.$$
  40 trap "rm -rf $tmpdir; exit 1" 1 2 13 15
  41 
  42 mkdir -m 700 $tmpdir || {
  43         echo "${0}: could not create temporary directory" 1&>2
  44         exit 1
  45 }
  46 
  47 [ -d $1 ] || exit 1
  48 
  49 cd $1
  50 top=`pwd`
  51 for i in man?* sman?*
  52 do
  53         if [ -d $i ] ; then
  54                 cd $i
  55                 if test "`echo *`" != "*" ; then
  56                         /usr/lib/getNAME *
  57                 fi
  58                 cd $top
  59         fi
  60 done >$tmpdir/whatisx
  61 sed  <$tmpdir/whatisx \
  62         -e 's/\\-/-/' \
  63         -e 's/\\\*-/-/' \
  64         -e 's/ VAX-11//' \
  65         -e 's/\\f[PRIB01234]//g' \
  66         -e 's/\\s[-+0-9]*//g' \
  67         -e 's/\\&//g' \
  68         -e '/ - /!d' \
  69         -e 's/.TH [^ ]* \([^    ]*\).*  \(.*\) -/\2 (\1)         -/' \
  70         -e 's/   /      /g' | \
  71 awk '{  title = substr($0, 1, index($0, "- ") - 1)
  72         synop = substr($0, index($0, "- "))
  73         count = split(title, n, " ")
  74         for (i=1; i<count; i++) {
  75                 if ( (pos = index(n[i], ",")) || (pos = index(n[i], ":")) )
  76                         n[i] = substr(n[i], 1, pos-1)
  77                 printf("%s\t%s %s\t%s\n", n[i], n[1], n[count], synop)
  78         }
  79 }' >$tmpdir/whatis
  80 /usr/bin/expand -16,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100 \
  81         $tmpdir/whatis | LC_CTYPE=C LC_COLLATE=C sort -u | \
  82         /usr/bin/unexpand -a > windex
  83 chmod 644 windex >/dev/null 2>&1
  84 rm -rf $tmpdir
  85 exit 0