chiark / gitweb /
Tool for installing manpages.
[cfd] / maninst
diff --git a/maninst b/maninst
new file mode 100755 (executable)
index 0000000..8ef9dc0
--- /dev/null
+++ b/maninst
@@ -0,0 +1,54 @@
+#! /bin/sh
+
+set -e
+ext="" mandir=/usr/local/man srcdir=. inst=install mode=644
+while [ $# -gt 0 ]; do
+  case $1 in
+    -h)
+      echo "$0: [-e EXT] [-d DIR] [-i INSTALL] [-m MODE] [un]install FILE ..."
+      exit 0
+      ;;
+    -e) ext=$2; shift 2 ;;
+    -d) mandir=$2; shift 2 ;;
+    -i) inst=$2; shift 2 ;;
+    -m) mode=$2; shift 2 ;;
+    -s) srcdir=$2; shift 2 ;;
+    --) shift; break ;;
+    -*) echo >&2 "$0: unknown option \`$1'"; exit 1 ;;
+    *) break ;;
+  esac
+done
+op=$1; shift
+case $op in
+  install | uninstall) ;;
+  *) echo >&2 "$0: unknown operation \`$1'"; exit 1 ;;
+esac
+for i; do
+  base=`echo "$i" | sed 's:^.*/::'`
+  sec=`echo "$base" | sed 's:^.*\.::'`
+  case $op in
+    install)
+      echo -n " Installing manpage $base$ext"
+      $inst -d "$mandir/man$sec"
+      $inst -m $mode "$srcdir/$i" "$mandir/man$sec/$base$ext"
+      ;;
+    uninstall)
+      rm -f "$mandir/man$sec/$base$ext"
+      ;;
+  esac
+  for l in `sed 's:^\.\\\"  *@::p; d' "$srcdir/$i"`; do
+    case $op in
+      install)
+        echo -n "."
+       echo ".so man$sec/$base$ext" >"$mandir/man$sec/$l.$sec$ext"
+       chmod $mode "$mandir/man$sec/$l.$sec$ext"
+       ;;
+      uninstall)
+        rm -f "$mandir/man$sec/$l.$sec$ext"
+       ;;
+    esac
+  done
+  case $op in
+    install) echo ;;
+  esac
+done