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|"