cookutils rev 703

cooker.cgi: allow wildcard in package search
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Jan 09 13:05:32 2015 +0100 (2015-01-09)
parents 071c56593d84
children a7e3087f5ace
files cook web/cooker.cgi
line diff
     1.1 --- a/cook	Thu Nov 27 16:38:10 2014 +0200
     1.2 +++ b/cook	Fri Jan 09 13:05:32 2015 +0100
     1.3 @@ -310,7 +310,7 @@
     1.4  		*.zip|*.xpi) unzip -o $SRC/$TARBALL ;;
     1.5  		*.xz) unxz -c $SRC/$TARBALL | tar xf - || tar xf $SRC/$TARBALL 2>/dev/null;;
     1.6  		*.7z) 7zr x $SRC/$TARBALL ;;
     1.7 -		*.Z) uncompress -c $SRC/$TARBALL | tar xf - ;;
     1.8 +		*.Z|*.z) uncompress -c $SRC/$TARBALL | tar xf - ;;
     1.9  		*.rpm) rpm2cpio $SRC/$TARBALL | cpio -idm --quiet ;;
    1.10  		*.run) /bin/sh $SRC/$TARBALL $RUN_OPTS ;;
    1.11  		*) cp $SRC/$TARBALL $(pwd) ;;
     2.1 --- a/web/cooker.cgi	Thu Nov 27 16:38:10 2014 +0200
     2.2 +++ b/web/cooker.cgi	Fri Jan 09 13:05:32 2015 +0100
     2.3 @@ -179,7 +179,26 @@
     2.4  				echo "<a href='ftp://${HTTP_HOST%:*}/$pkg/'>browse</a>"
     2.5  			fi
     2.6  		else
     2.7 -			echo "No package named: $pkg"
     2.8 +			if [ $(ls $wok/*$pkg*/receipt 2> /dev/null | wc -l) -eq 0 ]; then
     2.9 +				echo "No package named: $pkg"
    2.10 +			else
    2.11 +				ls $wok/$pkg/receipt >/dev/null 2>&1 || pkg="*$pkg*"
    2.12 +				echo '<table style="width:100%">'
    2.13 +				for i in $(cd $wok ; ls $pkg/receipt); do
    2.14 +					pkg=$(dirname $i)
    2.15 +					unset SHORT_DESC CATEGORY
    2.16 +					. $wok/$pkg/receipt
    2.17 +					cat <<EOT
    2.18 +<tr>
    2.19 +<td><a href="cooker.cgi?pkg=$pkg">$pkg</a></td>
    2.20 +<td>$SHORT_DESC</td>
    2.21 +<td>$CATEGORY</td>
    2.22 +</tr>
    2.23 +EOT					
    2.24 +				done
    2.25 +				echo '</table>'
    2.26 +				unset pkg
    2.27 +			fi
    2.28  		fi
    2.29  		echo '</div>'
    2.30  
    2.31 @@ -207,7 +226,7 @@
    2.32  			cat $log | syntax_highlighter log
    2.33  			echo '</pre>'
    2.34  		else
    2.35 -			echo "<pre>No log: $pkg</pre>"
    2.36 +			[ "$pkg" ] && echo "<pre>No log: $pkg</pre>"
    2.37  		fi ;;
    2.38  	file=*)
    2.39  		# Dont allow all files on the system for security reasons.
    2.40 @@ -277,9 +296,9 @@
    2.41  		fi ;;
    2.42  	files=*)
    2.43  		pkg=${QUERY_STRING#files=}
    2.44 -		echo "<h2>Installed files by: $pkg</h2>"
    2.45  		dir=$(ls -d $WOK/$pkg/taz/$pkg-*)
    2.46  		if [ -d "$dir/fs" ]; then
    2.47 +			echo "<h2>Installed files by: $pkg ($(du -hs $dir/fs | awk '{ print $1 }'))</h2>"
    2.48  			echo '<pre>'
    2.49  			find $dir/fs -not -type d | xargs ls -ld | \
    2.50  				sed "s|\(.*\) /.*\(${dir#*wok}/fs\)\(.*\)|\1 <a href=\"?download=../wok\2\3\">\3</a>|;s|^\([^-].*\)\(<a.*\)\">\(.*\)</a>|\1\3|"