slitaz-base-files view rootfs/usr/bin/man @ rev 194

man: fixed
author Aleksej Bobylev <al.bobylev@gmail.com>
date Sun Jun 03 14:39:29 2012 +0000 (2012-06-03)
parents d4df77afbed6
children 986f32a2ce6f
line source
1 #!/bin/sh
2 #
3 # Tiny man fake using online manuals.
4 # Copyright (C) 2009-2012 SliTaz GNU/Linux.
5 #
6 . /lib/libtaz.sh
8 # Internationalization.
9 . /usr/bin/gettext.sh
10 TEXTDOMAIN='slitaz-base'
11 . /etc/locale.conf
12 export TEXTDOMAIN LANG
14 if [ ! -x /usr/bin/retawq ]; then
15 echo; gettext "Missing Retawq web browser..."; echo
16 gettext "Please run: su -c 'tazpkg get-install retawq'"; echo -e "\n"
17 exit 0
18 fi
20 local i
21 local SECTION
22 local MSG
23 local TOPIC
24 local MAN_SECTION
26 case "$1" in
27 ''|-*)
28 emsg "$(gettext '<b>Usage:</b> man [section] command')"
29 return ;;
30 esac
32 SECTION=all
33 MAN_SECTION='*'
34 MSG=""
36 if [ -n "$2" ]; then
37 SECTION=$1
38 MAN_SECTION=$1
39 MSG=" $(eval_gettext 'in section $SECTION')"
40 shift
41 fi
43 TOPIC=$1
45 if [ -x /usr/bin/retawq -a -f /usr/share/doc/$TOPIC/$TOPIC.html ]; then
46 retawq --dump=file:///usr/share/doc/$TOPIC/$TOPIC.html | less -M
47 return
48 elif [ -x /usr/bin/retawq -a -f /usr/share/doc/slitaz-tools/$TOPIC.html ]; then
49 retawq --dump=file:///usr/share/doc/slitaz-tools/$TOPIC.html | less -M
50 return
51 elif [ -f /usr/share/doc/slitaz/$TOPIC.txt ]; then
52 # SliTaz tools/libraries documentation (man a like format)
53 less -M /usr/share/doc/slitaz/$TOPIC.txt
54 return
55 fi
57 for i in /usr/share/man/$LC_ALL/man$MAN_SECTION /usr/share/man/man$MAN_SECTION; do
58 if [ -f $i/$TOPIC.* ]; then
59 i=$(ls $i/$TOPIC.* 2> /dev/null)
60 if [ "x$i" != "x" ]; then
61 case "$i" in
62 *gz) (zcat $i || unlzma -c $i 2> /dev/null) | less -M;;
63 *) less -M $i;;
64 esac
65 fi
66 return
67 fi
68 if [ -x /usr/bin/retawq -a -f $i/$TOPIC.html ]; then
69 retawq --dump=file://$i/$TOPIC.html | less -M
70 return
71 fi
72 done
74 [ "x$SECTION" = "x" ] && SECTION="all"
75 (wget -O - "http://mirror.slitaz.org/man/$SECTION/$TOPIC.html" || \
76 wget -O - "http://man.he.net/?topic=$TOPIC&section=$SECTION") 2> /dev/null | \
77 awk "BEGIN { s=0; n=0 } /<PRE>/ { s=1 } { if (s) { print; n++} } /<\/PRE>/ { s=0 } END { if (n == 0) print \"$(eval_gettext 'No manual entry for $TOPIC$MSG')\" }" | \
78 sed -e 's/<[^>]*>//g' -e 's/&lt;/</g' -e 's/&gt;/>/g' -e 's/&amp;/\&/g' | less -M
80 exit 0