installManPage
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
- #!/bin/sh
- ZIP=:
- while true; do
- case $1 in
- -s | --symlinks ) S="-s ";;
- -z | --compress ) ZIP=$2; shift ;;
- -e | --extension ) Z=$2; shift ;;
- -s | --suffix ) SUFFIX=$2; shift ;;
- *) break ;;
- esac
- shift
- done
- if test "$#" != 2; then
- echo "Usage: installManPages <options> file dir"
- exit 1
- fi
- MANPAGE=$1
- DIR=$2
- test -z "$S" && S="$DIR/"
- # A sed script to parse the alternative names out of a man page.
- #
- # /^\.SH NAME/{ ;# Look for a line, that starts with .SH NAME
- # s/^.*$// ;# Delete the content of this line from the buffer
- # n ;# Read next line
- # s/,//g ;# Remove all commas ...
- # s/\ //g ;# .. and backslash-escaped spaces.
- # s/ \-.*// ;# Delete from - to the end of line
- # p ;# print the result
- # q ;# exit
- # }
- #
- # Backslashes are trippled in the sed script, because it is in
- # backticks which don't pass backslashes literally.
- #
- # Please keep the commented version above updated if you
- # change anything to the script below.
- NAMES=`sed -n '
- /^\.SH NAME/{
- s/^.*$//
- n
- s/,//g
- s/\ //g
- s/ \-.*//
- p
- q
- }' $MANPAGE`
- SECTION=`echo $MANPAGE | sed 's/.*(.)$/1/'`
- SRCDIR=`dirname $MANPAGE`
- FIRST=""
- for f in $NAMES; do
- f=$f.$SECTION$SUFFIX
- if test -z "$FIRST" ; then
- FIRST=$f
- rm -f $DIR/$FIRST $DIR/$FIRST.*
- sed -e "/man.macros/r $SRCDIR/man.macros" -e "/man.macros/d"
- $MANPAGE > $DIR/$FIRST
- chmod 444 $DIR/$FIRST
- $ZIP $DIR/$FIRST
- else
- rm -f $DIR/$f $DIR/$f.*
- ln $S$FIRST$Z $DIR/$f$Z
- fi
- done