rev |
line source |
al@811
|
1 #!/bin/sh
|
al@811
|
2 # TazPkg - Tiny autonomous zone packages manager.
|
al@811
|
3 # TazPkg help system
|
al@811
|
4
|
al@811
|
5 . /lib/libtaz.sh
|
al@811
|
6
|
al@811
|
7 T="${1#-}"
|
al@811
|
8 DOC='/usr/share/doc/tazpkg/tazpkg.html'
|
al@811
|
9 QUERY="$T"
|
al@811
|
10
|
al@811
|
11 if [ -z "$T" ]; then
|
al@811
|
12 tazpkg usage; exit 0
|
al@811
|
13 fi
|
al@811
|
14
|
al@811
|
15 commands="\
|
al@811
|
16 :usage::help,h::activity,log,a::clean-cache,cc::shell::list,l::list-mirror,lm:\
|
al@811
|
17 :list-config::search,s::search-pkgname,sp::search-file,sf::get,g::install,i:\
|
al@811
|
18 :get-install,gi::install-list,get-install-list::remove,r::reconfigure::link:\
|
al@811
|
19 :set-release::add-flavor,install-flavor::info::desc,d::list-files,lf:\
|
al@811
|
20 :block,b,unblock,u,chblock::check::bugs::depends,rdepends::extract,e::pack:\
|
al@811
|
21 :repack::repack-config::recompress::convert,c::list-suggested::recharge:
|
al@811
|
22 :upgrade,up::setup-mirror,sm::add-undigest,setup-undigest::list-undigest:\
|
al@811
|
23 :remove-undigest:"
|
al@811
|
24
|
al@811
|
25 if [ ! $(echo $commands | grep -e "[:,]$T[:,]") ]; then
|
al@811
|
26 try1=$(echo $commands | grep -oe ":[^:]*$T[^:]*:")
|
al@811
|
27 if [ -z "$try1" ]; then
|
al@811
|
28 _ 'Sorry, no help for "%s"' "$QUERY"; newline; exit 0
|
al@811
|
29 fi
|
al@811
|
30
|
al@811
|
31 try2=$(echo "$try1" | tr -d : )
|
al@811
|
32
|
al@811
|
33 trynum=$(echo "$try2" | wc -l)
|
al@811
|
34 if [ "$trynum" -ne 1 ]; then
|
al@811
|
35 _p '%d help topic available:' '%d help topics available:' "$trynum" \
|
al@811
|
36 "$trynum"; newline
|
al@811
|
37 echo "$try2" | sed 's|^| * &|; s| ,| |; s|,|, |g'
|
al@811
|
38 exit 0
|
al@811
|
39 else
|
al@811
|
40 T="${try2%%,*}"
|
al@811
|
41 fi
|
al@811
|
42 else
|
al@811
|
43 try3=$(echo $commands | grep -oe "[:,]$T[:,]")
|
al@811
|
44 case $try3 in
|
al@811
|
45 :*) try4="$try3";;
|
al@811
|
46 ,*) try4=$(echo $commands | grep -oe ":[^:]*$try3" | cut -d, -f1);;
|
al@811
|
47 esac
|
al@811
|
48
|
al@811
|
49 T=$(echo $try4 | tr -d ':,')
|
al@811
|
50 fi
|
al@811
|
51
|
al@811
|
52 title=$(echo $commands | grep -oe ":$T\(,[^:]*\)*:" | tr -d : | sed 's|,|, |g')
|
al@811
|
53
|
al@811
|
54
|
al@811
|
55 # style: <h3 id="TOPIC">
|
al@811
|
56 HLP=$(sed "/id=\"$T\"/,/<h3/!d; /<h3/d; /<\/h3/d; /<h2/,\$d" $DOC)
|
al@811
|
57 if [ -z "$HLP" ]; then
|
al@811
|
58 # style: <a name="TOPIC"></a>
|
al@811
|
59 HLP=$(sed "/name=\"$T\"/,/name=/!d; /name=/d; /<h3/d; /<h2/,\$d" $DOC)
|
al@811
|
60 fi
|
al@811
|
61
|
al@811
|
62 if [ -z "$HLP" ]; then
|
al@811
|
63 _ 'Sorry, no help for "%s"' "$QUERY"
|
al@811
|
64 exit 0
|
al@811
|
65 fi
|
al@811
|
66
|
al@811
|
67 PRE=$(echo "$HLP" | sed "/^$/d; /<pre>/,/<\/pre\>/{s|.*| &|; s| |·|g}; \
|
al@811
|
68 s|^ </*pre>$||; s|<pre>||; s|</pre>||; s| ·#| #|;" | tr '\n' ' ' | \
|
al@811
|
69 sed '/^[ ]*$/d' | \
|
al@811
|
70 sed 's|[ ][ ]*| |g;' | \
|
al@811
|
71 sed 's|[ ]*<dl>|O\n|g; s|[ ]*</dl>|L\n|g; s|[ ]*</*dt>||g;' | \
|
al@811
|
72 sed 's|[ ]*<dd>| |g; s|</dd>|\n|g;' | \
|
al@811
|
73 sed 's|<h4>|<b>|g; s|</h4>|</b>\n|g' | \
|
al@811
|
74 sed 's|[ ]*<p>[ ]*||g; s|[ ]*</p>|\n \n|g; s| |\n |g' | \
|
al@811
|
75 sed 's|<a [^>]*>||g; s|</a>||g; s|·| |g' | \
|
al@811
|
76 sed 's|</*nobr>||g; s|­||g; s|^[ ]*||' | \
|
al@811
|
77 sed '/^$/d' | \
|
al@811
|
78 sed 's|<tt>|A|g; s|<code>|A|g; s|<em>|B|g; s|<strong>|B|g; \
|
al@811
|
79 s|</tt>|D|g; s|</code>|D|g; s|</em>|D|g; s|</strong>|C|g; \
|
al@811
|
80 s|DD|D|g;')
|
al@811
|
81
|
al@811
|
82 OPT=$(echo "$PRE" | sed '/O/,/L/!d; /[OL]/d')
|
al@811
|
83 OPTLIST=$(optlist "$OPT")
|
al@811
|
84
|
al@811
|
85 OPT0=$(echo "$PRE" | tr '\n' '@')
|
al@811
|
86 OPTA=$(echo "$OPT" | tr '\n' '@')
|
al@811
|
87 OPTB=$(echo "$OPTLIST" | tr '\n' '@')
|
al@811
|
88
|
al@811
|
89 PRE2=$(echo "$OPT0" | sed "s|$OPTA|$OPTB|" | tr '@' '\n' | sed '/O/d; s|L||')
|
al@811
|
90
|
al@811
|
91 [ ! -z "$TA" ] && T="$T, $TA"
|
al@811
|
92
|
al@811
|
93 title '$title'
|
al@811
|
94 emsg "$(longline "$PRE2" | sed 's|A|<c 33>|g; s|B|<c 36>|g; s|C|<b>|g; s|D|</c>|g; ')"
|
al@811
|
95 newline
|