cookutils rev 1140
cooker.cgi: use http download
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat Jun 08 16:40:51 2019 +0200 (2019-06-08) |
parents | 540ed51fe3fb |
children | 8418b19a2dfc |
files | web/cooker.cgi |
line diff
1.1 --- a/web/cooker.cgi Mon May 13 09:16:24 2019 +0200 1.2 +++ b/web/cooker.cgi Sat Jun 08 16:40:51 2019 +0200 1.3 @@ -46,7 +46,7 @@ 1.4 EOT 1.5 exit ;; 1.6 src*) 1.7 - file=$(busybox httpd -d "$SRC/${QUERY_STRING#*=}") 1.8 + file="$PKGS/${QUERY_STRING#*=}" 1.9 cat <<EOT 1.10 Content-Type: application/octet-stream 1.11 Content-Length: $(stat -c %s "$file") 1.12 @@ -56,7 +56,7 @@ 1.13 cat "$file" 1.14 exit ;; 1.15 download*) 1.16 - file=$(busybox httpd -d "$PKGS/${QUERY_STRING#*=}") 1.17 + file="$PKGS/${QUERY_STRING#*=}" 1.18 cat <<EOT 1.19 Content-Type: application/octet-stream 1.20 Content-Length: $(stat -c %s "$file") 1.21 @@ -357,7 +357,7 @@ 1.22 echo "<a href='?info=$bpkg'>info</a>" 1.23 fi 1.24 [ -n "$(echo $REQUEST_URI | sed 's|/[^/]*?pkg.*||')" ] || 1.25 - echo "<a href='ftp://${HTTP_HOST%:*}/$pkg/'>browse</a>" 1.26 + echo "<a href='?browse=$pkg/'>browse</a>" 1.27 else 1.28 if [ $(ls $wok/*$pkg*/receipt 2>/dev/null | wc -l) -eq 0 ]; then 1.29 echo "No package named: $pkg" 1.30 @@ -418,6 +418,37 @@ 1.31 [ "$pkg" ] && echo "<pre>No log: $pkg</pre>" 1.32 fi ;; 1.33 1.34 + view=*) 1.35 + file="${QUERY_STRING#view=}" 1.36 + echo "<h2>View: $file</h2>" 1.37 + echo "<a href=\"?browse=?$file\">browse</a>" 1.38 + echo "<pre>" 1.39 + ls "$WOK/$file" | while read i; do 1.40 + meta="$(ls -ld "$WOK/$file/$i" | cut -c-57)" 1.41 + name="$i" 1.42 + ref="stuff=../wok/$file$i" 1.43 + [ -d "$WOK/$file/$i" ] && ref="view=$file$i/" 1.44 + [ -L "$WOK/$file/$i" ] && name="$i -> $(readlink "$i")" 1.45 + echo "$meta<a href=\"?$ref\">$name</a>" 1.46 + done 1.47 + echo "</pre>" 1.48 + ;; 1.49 + 1.50 + browse=*) 1.51 + file="${QUERY_STRING#browse=}" 1.52 + echo "<h2>Browse: $file</h2>" 1.53 + echo "<pre>" 1.54 + ls "$WOK/$file" | while read i; do 1.55 + meta="$(ls -ld "$WOK/$file/$i" | cut -c-57)" 1.56 + name="$i" 1.57 + ref="download=../wok/$file$i" 1.58 + [ -d "$WOK/$file/$i" ] && ref="browse=$file$i/" 1.59 + [ -L "$WOK/$file/$i" ] && name="$i -> $(readlink "$i")" 1.60 + echo "$meta<a href=\"?$ref\">$name</a>" 1.61 + done 1.62 + echo "</pre>" 1.63 + ;; 1.64 + 1.65 log=*) 1.66 log=$LOGS/${QUERY_STRING#log=} 1.67 if [ -s $log ]; then 1.68 @@ -484,9 +515,11 @@ 1.69 1.70 stuff=*) 1.71 file=${QUERY_STRING#stuff=} 1.72 + file="${file//%20/ }" 1.73 echo "<h2>$file</h2>" 1.74 + #echo "<a href=\"?download=$file\">download</a>" 1.75 echo '<pre>' 1.76 - cat $wok/$file | sed 's/&/\&/g;s/</\</g;s/>/\>/g' 1.77 + cat "$wok/$file" | sed 's/&/\&/g;s/</\</g;s/>/\>/g' 1.78 echo '</pre>' ;; 1.79 1.80 receipt=*) 1.81 @@ -516,7 +549,7 @@ 1.82 echo "<h2>Installed files by: $pkg ($(du -hs $dir/fs | awk '{ print $1 }'))</h2>" 1.83 echo '<pre>' 1.84 find $dir/fs -not -type d -print0 | xargs -0 ls -ld | \ 1.85 - sed "s|\(.*\) /.*\(${dir#*wok}/fs\)\(.*\)|\1 <a href=\"?download=../wok\2\3\">\3</a>|;s|^\([^-].*\)\(<a.*\)\">\(.*\)</a>|\1\3|" 1.86 + sed "s|^\(-.*\) /.*\(${dir#*wok}/fs\)\(.*\)|\1 <a href=\"?download=../wok\2\3\">\3</a>|;s| /[^>]*${dir#*wok}/fs| \1|" 1.87 echo '</pre>' 1.88 else 1.89 echo "<pre>No files list for: $pkg</pre>"