tazpkg annotate modules/tazpkg-help @ rev 811

Update documentation (attempt to describe all the commands both with all options). Strongly need to review and update translations and docs! Add TazPkg help system for commandline (based on the HTML docs). Attempt to drop all package lists but "packages.info". Small improvements and code prettify.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Thu Jun 04 00:15:13 2015 +0300 (2015-06-04)
parents
children
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|&shy;||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