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