summaryrefslogtreecommitdiffstats
path: root/unix/installManPage
diff options
context:
space:
mode:
Diffstat (limited to 'unix/installManPage')
-rwxr-xr-xunix/installManPage51
1 files changed, 51 insertions, 0 deletions
diff --git a/unix/installManPage b/unix/installManPage
new file mode 100755
index 0000000..16cf005
--- /dev/null
+++ b/unix/installManPage
@@ -0,0 +1,51 @@
+#!/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/"
+
+# Backslashes are trippled in the sed script, because it is in backticks
+# which don't pass backslashes literally.
+NAMES=`sed -n '
+ /^\\.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/ \\\-.*// # Delete from \- to the end of line
+ p # print the result
+ 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