installManPage
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #!/bin/sh
  2. ZIP=:
  3. while true; do
  4.     case $1 in
  5.         -s | --symlinks  )      S="-s ";;
  6.         -z | --compress  )    ZIP=$2;  shift ;;
  7. -e | --extension )      Z=$2;  shift ;;
  8. -s | --suffix    ) SUFFIX=$2;  shift ;;
  9. *)  break ;;
  10.     esac
  11.     shift
  12. done
  13. if test "$#" != 2; then
  14.     echo "Usage: installManPages <options> file dir"
  15.     exit 1
  16. fi
  17. MANPAGE=$1
  18. DIR=$2
  19. test -z "$S" && S="$DIR/"
  20. # A sed script to parse the alternative names out of a man page.
  21. #
  22. #    /^\.SH NAME/{   ;# Look for a line, that starts with .SH NAME
  23. # s/^.*$//      ;# Delete the content of this line from the buffer
  24. # n             ;# Read next line
  25. # s/,//g        ;# Remove all commas ...
  26. # s/\ //g     ;# .. and backslash-escaped spaces.
  27. # s/ \-.*//   ;# Delete from - to the end of line
  28. # p             ;# print the result
  29. # q             ;# exit
  30. #   }
  31. #
  32. # Backslashes are trippled in the sed script, because it is in
  33. # backticks which don't pass backslashes literally.
  34. #
  35. # Please keep the commented version above updated if you
  36. # change anything to the script below.
  37. NAMES=`sed -n '
  38.     /^\.SH NAME/{
  39. s/^.*$//
  40. n
  41. s/,//g
  42. s/\ //g
  43. s/ \-.*//
  44. p
  45. q
  46.     }' $MANPAGE`
  47. SECTION=`echo $MANPAGE | sed 's/.*(.)$/1/'`
  48. SRCDIR=`dirname $MANPAGE`
  49. FIRST=""
  50. for f in $NAMES; do
  51.     f=$f.$SECTION$SUFFIX
  52.     if test -z "$FIRST" ; then
  53. FIRST=$f
  54. rm -f $DIR/$FIRST $DIR/$FIRST.*
  55. sed -e "/man.macros/r $SRCDIR/man.macros" -e "/man.macros/d" 
  56.     $MANPAGE > $DIR/$FIRST
  57. chmod 444 $DIR/$FIRST
  58. $ZIP $DIR/$FIRST
  59.     else
  60. rm -f $DIR/$f $DIR/$f.*
  61. ln $S$FIRST$Z $DIR/$f$Z
  62.     fi
  63. done