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/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
    1.77 +		cat "$wok/$file" | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/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>"