home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / apps / desktops / gmni1999 / scripts / man.mup < prev    next >
Text File  |  1993-02-07  |  2KB  |  163 lines

  1. #!mupfel
  2. #
  3. # MAN - Manualpages anzeigen
  4. # Julian F. Reschke, 1. August 1992
  5. #
  6. # Dieses Shell-Script ist noch provisorisch und wird eventuell noch
  7. # durch ein man.ttp ersetzt. Im Moment ist es jedoch ein gutes Beispiel
  8. # und Testvehikel. Der Support fuer man -k ist noch nicht ganz fertig.
  9.  
  10. SUCCESS=nicht
  11.  
  12.  
  13. output ()
  14. {
  15.     case $1 in
  16.         cat*    ) more -c $2 ;;
  17.         man*    ) nroff -man $2 | more -c ;;
  18.         *    ) more -c $2 ;;
  19.     esac
  20.  
  21.     case $? in
  22.         0)    SUCCESS=true
  23.             ;;
  24.         *)    exit
  25.             ;;
  26.     esac
  27. }
  28.  
  29.  
  30. # Diagnose ausgeben
  31.  
  32. diag ()
  33. {
  34.     if [ $SUCCESS = nicht ]
  35.     then
  36.         echo $0: keine Manual-Page zu $1 vorhanden >&2
  37.         exit 2
  38.     else
  39.         exit 0
  40.     fi
  41. }
  42.  
  43. # In allen Manual-Sections nach $1 sehen
  44.  
  45. doman ()
  46. {
  47.     for i in CAT* MAN* SUP* .
  48.     do
  49.         pushd .
  50.         
  51.         if [ -d $i ]
  52.         then
  53.             cd $i
  54.             for j in $1.*
  55.             do
  56.                 if [ -f $j ]
  57.                 then
  58.                     output $i $j
  59.                 fi
  60.             done
  61.         fi
  62.         popd
  63.     done
  64. }
  65.  
  66.  
  67. doman_section ()
  68. {
  69.     for i in *$1
  70.     do
  71.         pushd .
  72.         cd $i
  73.         for j in $2.*
  74.         do
  75.             if [ -f $j ]
  76.             then
  77.                 output $i $j
  78.             fi
  79.         done
  80.         popd
  81.     done
  82. }
  83.  
  84. # Nach Keyword suchen
  85.  
  86. do_key ()
  87. {
  88.     for i in MAN*\whatis CAT*\whatis whatis
  89.     do
  90.         if [ -f $i ]
  91.         then
  92.             if grep -i $1 $i
  93.             then
  94.                 SUCCESS=true
  95.             fi
  96.         fi
  97.     done
  98.  
  99.     if [ $SUCCESS = nicht ]
  100.     then
  101.         echo $0: nichts gefunden
  102.         exit 1
  103.     fi
  104.     
  105.     exit 0
  106. }
  107.  
  108.  
  109. # main
  110.  
  111. ARGUMENTS=$#
  112.  
  113. case $ARGUMENTS in
  114.     1)    ARG1=$1
  115.         ;;
  116.     2)    ARG1=$1
  117.         ARG2=$2
  118.         ;;
  119.     *)    echo Gebrauch: $0 [Kapitel] Begriff
  120.         echo "         " $0 -k Begriff
  121.         exit
  122. esac
  123.  
  124. # Man-Path tokenisieren
  125.  
  126. MERK_IFS=$IFS
  127. IFS=',;'
  128. set -- $MANPATH
  129. IFS=$MERK_IFS
  130.  
  131. case $ARGUMENTS in
  132.     1)    for path
  133.         do
  134.             pushd .
  135.             cd $path
  136.             doman $ARG1
  137.             popd
  138.         done
  139.         diag $ARG1
  140.         ;;
  141.     2)    if [ $ARG1 = -k ]
  142.         then
  143.             for path
  144.             do
  145.                 pushd .
  146.                 cd $path
  147.                 do_key $ARG2
  148.                 popd
  149.             done
  150.         else
  151.             for path
  152.             do
  153.                 pushd .
  154.                 cd $path
  155.                 doman_section $ARG1 $ARG2
  156.                 popd
  157.             done
  158.             diag $ARG2
  159.         fi
  160.         ;;
  161. esac
  162.  
  163.