* fma: added support for -h/--help + -v/--version
[grml-scripts.git] / usr_bin / fma
1 #!/bin/zsh
2 # Filename:      fma
3 # Purpose:       "fast 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: Sam Okt 28 00:50:16 CEST 2006 [mika]
8 ################################################################################
9
10 . /etc/grml/lsb-functions
11 . /etc/grml/script-functions
12
13 check4progs man lzop vim || exit 1
14
15 MANDIR=${MANDIR:-$HOME/man}
16 VERSION='0.1'
17
18 if ! [ -d "$MANDIR" ] ; then
19    einfo "Creating $MANDIR."
20    mkdir $MANDIR ; eend $?
21 fi
22
23 usage() {
24    eerror "Usage: $0 [section] manpage" ; eend 1
25    exit 1
26 }
27
28 case $1 in
29   -h*|--h*)
30     usage
31     ;;
32   -v*|--v*)
33     einfo "$0 - version $VERSION" ; eend 0
34     exit 0
35     ;;
36   [0-9])
37     SECTION="${1}"
38     SECTIONFILE=".${1}"
39     MANPAGE="$2"
40     ;;
41   *)
42     SECTION=''
43     MANPAGE="$1"
44     ;;
45 esac
46
47 if [ -z "$MANPAGE" ] ; then
48    usage
49 fi
50
51 if ! [ -f "${MANDIR}/${MANPAGE}${SECTIONFILE}.txt.lzo" ] ; then
52    einfo "Writing manpage to ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt"
53    if man $SECTION $MANPAGE 1>/dev/null ; then
54       man $SECTION $MANPAGE > ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt ; eend $?
55       einfo "Compressing manpage with lzop"
56       lzop -o ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt.lzo ${MANDIR}/${MANPAGE}${SECTIONFILE}.txt ; eend $?
57    else
58       exit 1
59       eend 1
60    fi
61 fi
62
63 vim -c 'set ft=man' =( lzop -cd $MANDIR/${MANPAGE}${SECTIONFILE}.txt.lzo)
64
65 einfo "Thanks for flying $0." ; eend 0
66
67 ## END OF FILE #################################################################