* fma has been renamed into qma. Supports "directly jump to
[grml-scripts.git] / usr_bin / qma
diff --git a/usr_bin/qma b/usr_bin/qma
new file mode 100755 (executable)
index 0000000..c7944dc
--- /dev/null
@@ -0,0 +1,73 @@
+#!/bin/zsh
+# Filename:      qma
+# Purpose:       "quick manual access"
+# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports:   see http://grml.org/bugs/
+# License:       This file is licensed under the GPL v2.
+# Latest change: Sam Dez 02 18:40:18 CET 2006 [mika]
+################################################################################
+
+# Idea for this script and basic functionally by Matthias Kopfermann <maddi@grml.org>.
+
+. /etc/grml/lsb-functions
+. /etc/grml/script-functions
+
+check4progs man lzop vim || exit 1
+
+MANDIR=${MANDIR:-$HOME/man}
+VERSION='0.1'
+
+if ! [ -d "$MANDIR" ] ; then
+   einfo "Creating $MANDIR."
+   mkdir $MANDIR ; eend $?
+fi
+
+usage() {
+   eerror "Usage: qma [section] manpage" ; eend 1
+   exit 1
+}
+
+case $1 in
+  -h*|--h*)
+    usage
+    ;;
+  -v*|--v*)
+    einfo "qma - version $VERSION" ; eend 0
+    exit 0
+    ;;
+  [0-9])
+    SECTION="${1}"
+    SECTIONFILE=".${1}"
+    MANPAGE="$2"
+    ;;
+  *)
+    SECTION=''
+    MANPAGE="$1"
+    ;;
+esac
+
+if [ -z "$MANPAGE" ] ; then
+   usage
+fi
+
+if ! [ -f "${MANDIR}/${MANPAGE}${SECTIONFILE}.txt.lzo" ] ; then
+   einfo "Writing manpage to ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt"
+   if man $SECTION $MANPAGE 1>/dev/null ; then
+      man $SECTION $MANPAGE > ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt ; eend $?
+      einfo "Compressing manpage with lzop"
+      lzop -U ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt.lzo ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt ; eend $?
+   else
+      exit 1
+      eend 1
+   fi
+fi
+
+if [ -n "$SEARCH" ] ; then
+  vim -c "set ft=man | set hlsearch | set ignorecase" +/"$SEARCH" =( lzop -cd $MANDIR/${MANPAGE}${SECTIONFILE}.txt.lzo)
+else
+  vim -c 'set ft=man' =( lzop -cd $MANDIR/${MANPAGE}${SECTIONFILE}.txt.lzo)
+fi
+
+einfo "Thanks for flying qma using vim and lzop." ; eend 0
+
+## END OF FILE #################################################################