* qma: fix missing $SEARCH (thanks for noticing, wuehlmaus).
[grml-scripts.git] / usr_bin / qma
1 #!/bin/zsh
2 # Filename:      qma
3 # Purpose:       "quick manual access"
4 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
5 # Bug-Reports:   see http://grml.org/bugs/
6 # License:       This file is licensed under the GPL v2.
7 # Latest change: Son Dez 03 00:24:00 CET 2006 [mika]
8 ################################################################################
9
10 # Idea for this script and basic functionally by Matthias Kopfermann <maddi@grml.org>.
11
12 . /etc/grml/lsb-functions
13 . /etc/grml/script-functions
14
15 check4progs man lzop vim || exit 1
16
17 MANDIR=${MANDIR:-$HOME/man}
18 VERSION='0.1'
19
20 if ! [ -d "$MANDIR" ] ; then
21    einfo "Creating $MANDIR."
22    mkdir $MANDIR ; eend $?
23 fi
24
25 usage() {
26    eerror "Usage: qma [section] manpage" ; eend 1
27    exit 1
28 }
29
30 case $1 in
31   -h*|--h*)
32     usage
33     ;;
34   -v*|--v*)
35     einfo "qma - version $VERSION" ; eend 0
36     exit 0
37     ;;
38   [0-9])
39     SECTION="${1}"
40     SECTIONFILE=".${1}"
41     MANPAGE="$2"
42     SEARCH="$3"
43     ;;
44   *)
45     SECTION=''
46     MANPAGE="$1"
47     SEARCH="$2"
48     ;;
49 esac
50
51 if [ -z "$MANPAGE" ] ; then
52    usage
53 fi
54
55 if ! [ -f "${MANDIR}/${MANPAGE}${SECTIONFILE}.txt.lzo" ] ; then
56    einfo "Writing manpage to ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt"
57    if man $SECTION $MANPAGE 1>/dev/null ; then
58       man $SECTION $MANPAGE > ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt ; eend $?
59       einfo "Compressing manpage with lzop"
60       lzop -U ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt.lzo ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt ; eend $?
61    else
62       exit 1
63       eend 1
64    fi
65 fi
66
67 if [ -n "$SEARCH" ] ; then
68   vim -c "set ft=man | set hlsearch | set ignorecase" +/"$SEARCH" =( lzop -cd $MANDIR/${MANPAGE}${SECTIONFILE}.txt.lzo)
69 else
70   vim -c 'set ft=man' =( lzop -cd $MANDIR/${MANPAGE}${SECTIONFILE}.txt.lzo)
71 fi
72
73 einfo "Thanks for flying qma using vim and lzop." ; eend 0
74
75 ## END OF FILE #################################################################