cookutils diff web/cooker.cgi @ rev 810
cooker.cgi: add man & doc links
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Tue Jul 05 20:18:31 2016 +0200 (2016-07-05) |
parents | 05a7f4f61409 |
children | 5990a5522799 |
line diff
1.1 --- a/web/cooker.cgi Sun Jul 03 11:44:55 2016 +0200 1.2 +++ b/web/cooker.cgi Tue Jul 05 20:18:31 2016 +0200 1.3 @@ -3,6 +3,8 @@ 1.4 # SliTaz Cooker CGI/web interface. 1.5 # 1.6 1.7 +. /usr/lib/slitaz/httphelper.sh 1.8 + 1.9 [ -f "/etc/slitaz/cook.conf" ] && . /etc/slitaz/cook.conf 1.10 [ -f "cook.conf" ] && . ./cook.conf 1.11 1.12 @@ -80,7 +82,7 @@ 1.13 <link>$COOKER_URL</link> 1.14 <lastBuildDate>$pubdate</lastBuildDate> 1.15 <pubDate>$pubdate</pubDate> 1.16 - <atom:link href="http://cook.slitaz.org/cooker.cgi?rss" rel="self" type="application/rss+xml" /> 1.17 + <atom:link href="http://cook.slitaz.org/?rss" rel="self" type="application/rss+xml" /> 1.18 EOT 1.19 for rss in $(ls -lt $FEEDS/*.xml | head -n 12); do 1.20 cat $rss | sed 's|<guid|& isPermaLink="false"|g;s|</pubDate| GMT&|g' 1.21 @@ -98,6 +100,18 @@ 1.22 # 1.23 1.24 1.25 +# Unpack to stdout 1.26 + 1.27 +docat() { 1.28 + case "$1" in 1.29 + *gz) zcat ;; 1.30 + *bz2) bzcat ;; 1.31 + *xz) xzcat ;; 1.32 + *) cat 1.33 + esac < $1 1.34 +} 1.35 + 1.36 + 1.37 # Put some colors in log and DB files. 1.38 1.39 syntax_highlighter() { 1.40 @@ -161,7 +175,7 @@ 1.41 more_button() { 1.42 [ $(wc -l < ${3:-$CACHE/$1}) -gt ${4:-12} ] && cat <<EOT 1.43 <div style="float: right;"> 1.44 - <a class="button" href="cooker.cgi?file=$1">$2</a> 1.45 + <a class="button" href="?file=$1">$2</a> 1.46 </div> 1.47 EOT 1.48 } 1.49 @@ -235,7 +249,7 @@ 1.50 # Package info. 1.51 echo '<div id="info">' 1.52 if [ -f "$wok/$pkg/receipt" ]; then 1.53 - echo "<a href='cooker.cgi?receipt=$pkg'>receipt</a>" 1.54 + echo "<a href='?receipt=$pkg'>receipt</a>" 1.55 unset WEB_SITE 1.56 . $wok/$pkg/receipt 1.57 1.58 @@ -243,19 +257,25 @@ 1.59 echo "<a href='$WEB_SITE'>home</a>" 1.60 1.61 if [ -f "$wok/$pkg/taz/$PACKAGE-$VERSION/receipt" ]; then 1.62 - echo "<a href='cooker.cgi?files=$pkg'>files</a>" 1.63 + echo "<a href='?files=$pkg'>files</a>" 1.64 unset EXTRAVERSION 1.65 . $wok/$pkg/taz/$PACKAGE-$VERSION/receipt 1.66 if [ -f $wok/$pkg/taz/$PACKAGE-$VERSION/description.txt ]; then 1.67 - echo "<a href='cooker.cgi?description=$pkg'>description</a>" 1.68 + echo "<a href='?description=$pkg'>description</a>" 1.69 fi 1.70 if [ -f $PKGS/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg ]; then 1.71 - echo "<a href='cooker.cgi?download=$PACKAGE-$VERSION$EXTRAVERSION.tazpkg'>download</a>" 1.72 + echo "<a href='?download=$PACKAGE-$VERSION$EXTRAVERSION.tazpkg'>download</a>" 1.73 fi 1.74 if [ -f $PKGS/$PACKAGE-$VERSION$EXTRAVERSION-$ARCH.tazpkg ]; then 1.75 - echo "<a href='cooker.cgi?download=$PACKAGE-$VERSION$EXTRAVERSION-$ARCH.tazpkg'>download</a>" 1.76 + echo "<a href='?download=$PACKAGE-$VERSION$EXTRAVERSION-$ARCH.tazpkg'>download</a>" 1.77 fi 1.78 fi 1.79 + if [ -x ./man2html && -d $wok/$pkg/install/usr/share/man ]; then 1.80 + echo "<a href='?man=$PACKAGE'>man</a>" 1.81 + fi 1.82 + if [ -d $wok/$pkg/install/usr/share/doc ]; then 1.83 + echo "<a href='?doc=$PACKAGE'>doc</a>" 1.84 + fi 1.85 echo "<a href='ftp://${HTTP_HOST%:*}/$pkg/'>browse</a>" 1.86 else 1.87 if [ $(ls $wok/*$pkg*/receipt 2> /dev/null | wc -l) -eq 0 ]; then 1.88 @@ -269,7 +289,7 @@ 1.89 . $wok/$pkg/receipt 1.90 cat <<EOT 1.91 <tr> 1.92 -<td><a href="cooker.cgi?pkg=$pkg">$pkg</a></td> 1.93 +<td><a href="?pkg=$pkg">$pkg</a></td> 1.94 <td>$SHORT_DESC</td> 1.95 <td>$CATEGORY</td> 1.96 </tr> 1.97 @@ -307,7 +327,7 @@ 1.98 case "$HTTP_USER_AGENT" in 1.99 *SliTaz*) 1.100 [ -f $CACHE/cooker-request ] && [ -n "$HTTP_REFERER" ] && 1.101 - echo "<a class=\"button\" href=\"cooker.cgi?recook=$pkg\">Recook $pkg</a>" 1.102 + echo "<a class=\"button\" href=\"?recook=$pkg\">Recook $pkg</a>" 1.103 esac 1.104 else 1.105 [ "$pkg" ] && echo "<pre>No log: $pkg</pre>" 1.106 @@ -330,7 +350,7 @@ 1.107 echo "<h2>DB: broken - Packages: $nb</h2>" 1.108 echo '<pre>' 1.109 cat $CACHE/$file | sort | \ 1.110 - sed s"#^[^']*#<a href='cooker.cgi?pkg=\0'>\0</a>#"g 1.111 + sed s"#^[^']*#<a href='?pkg=\0'>\0</a>#"g 1.112 echo '</pre>' ;; 1.113 1.114 *.diff) 1.115 @@ -411,12 +431,41 @@ 1.116 echo "<pre>No description for: $pkg</pre>" 1.117 fi ;; 1.118 1.119 + man=*|doc=*) 1.120 + type=${QUERY_STRING%%=*} 1.121 + pkg=$(GET $type) 1.122 + dir=$WOK/$pkg/install/usr/share/$type 1.123 + page=$(GET file) 1.124 + if [ -z "$page" ]; then 1.125 + page=$(find $dir -type f | sed q) 1.126 + page=${page#$dir/} 1.127 + fi 1.128 + find $dir -type f | while read file ; do 1.129 + file=${file#$dir/} 1.130 + echo "<a href='?$type=$pkg&file=$file'>$(basename $file)</a>" 1.131 + done 1.132 + echo "<h2>$(basename $page)</h2>" 1.133 + tmp="$(mktemp)" 1.134 + docat "$dir/$page" > $tmp 1.135 + case "$type" in 1.136 + doc) 1.137 + echo '<pre>' 1.138 + sed 's/&/\&/g;s/</\</g;s/>/\>/g' < "$tmp" 1.139 + echo '</pre>' ;; 1.140 + man) 1.141 + export TEXTDOMAIN='man2html' 1.142 + ./man2html "$tmp" | sed -e '1,/<header>/d' \ 1.143 + -e 's|<a href="file:///[^>]*>\([^<]*\)</a>|\1|g' \ 1.144 + -e 's|<a href="?[1-9]\+[^>]*>\([^<]*\)</a>|\1|g' ;; 1.145 + esac 1.146 + rm -f $tmp 1.147 + ;; 1.148 *) 1.149 # We may have a toolchain.cgi script for cross cooker's 1.150 if [ -f "toolchain.cgi" ]; then 1.151 toolchain='toolchain.cgi' 1.152 else 1.153 - toolchain='cooker.cgi?pkg=slitaz-toolchain' 1.154 + toolchain='?pkg=slitaz-toolchain' 1.155 fi 1.156 # Main page with summary. Count only package include in ARCH, 1.157 # use 'cooker arch-db' to manually create arch.$ARCH files. 1.158 @@ -447,7 +496,7 @@ 1.159 [ -e $CACHE/cooker-request ] && 1.160 [ $CACHE/activity -nt $CACHE/cooker-request ] && cat <<EOT 1.161 <div style="float: right;"> 1.162 - <a class="button" href="cooker.cgi?poke">Poke cooker</a> 1.163 + <a class="button" href="?poke">Poke cooker</a> 1.164 </div> 1.165 EOT 1.166 cat <<EOT 1.167 @@ -461,10 +510,10 @@ 1.168 1.169 <p> 1.170 Latest: 1.171 - <a href="cooker.cgi?file=cookorder.log">cookorder.log</a> 1.172 - <a href="cooker.cgi?file=commits.log">commits.log</a> 1.173 - <a href="cooker.cgi?file=pkgdb.log">pkgdb.log</a> 1.174 - <a href="cooker.cgi?file=installed.diff">installed.diff</a> 1.175 + <a href="?file=cookorder.log">cookorder.log</a> 1.176 + <a href="?file=commits.log">commits.log</a> 1.177 + <a href="?file=pkgdb.log">pkgdb.log</a> 1.178 + <a href="?file=installed.diff">installed.diff</a> 1.179 - Architecture $ARCH: 1.180 <a href="$toolchain">toolchain</a> 1.181 </p> 1.182 @@ -503,14 +552,14 @@ 1.183 $(more_button broken "All broken packages" $broken 20) 1.184 <h2 id="broken">Broken</h2> 1.185 <pre> 1.186 -$(cat $broken | head -n 20 | sed s"#^[^']*#<a href='cooker.cgi?pkg=\0'>\0</a>#"g) 1.187 +$(cat $broken | head -n 20 | sed s"#^[^']*#<a href='?pkg=\0'>\0</a>#"g) 1.188 </pre> 1.189 EOT 1.190 1.191 [ -s $blocked ] && cat <<EOT 1.192 <h2 id="blocked">Blocked</h2> 1.193 <pre> 1.194 -$(cat $blocked | sed s"#^[^']*#<a href='cooker.cgi?pkg=\0'>\0</a>#"g) 1.195 +$(cat $blocked | sed s"#^[^']*#<a href='?pkg=\0'>\0</a>#"g) 1.196 </pre> 1.197 EOT 1.198