cookutils rev 914
modules/pkgdb: works for receipts v2 too now.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Wed Jun 07 21:39:55 2017 +0300 (2017-06-07) |
parents | 1e4e278b2285 |
children | d30a093674f6 |
files | lighttpd/index.cgi modules/pkgdb |
line diff
1.1 --- a/lighttpd/index.cgi Tue Jun 06 17:29:00 2017 +0300 1.2 +++ b/lighttpd/index.cgi Wed Jun 07 21:39:55 2017 +0300 1.3 @@ -484,8 +484,8 @@ 1.4 -e 's#^.*No package .* found.*#<b>\0</b>#' \ 1.5 -e 's#^.*Unable to find.*#<b>\0</b>#' \ 1.6 -e 's#^.*[Ii]nvalid.*#<b>\0</b>#' \ 1.7 - -e 's#\([Nn][Oo][Tt] found\)$#<b>\1</b>#' \ 1.8 - -e 's#\(found\)$#<i>\1</i>#' \ 1.9 + -e 's#\([Nn][Oo][Tt] found\.*\)$#<b>\1</b>#' \ 1.10 + -e 's#\(found\.*\)$#<i>\1</i>#' \ 1.11 \ 1.12 -e 's#^.*WARNING:.*#<u>\0</u>#' \ 1.13 -e 's#^.*warning:.*#<u>\0</u>#' \
2.1 --- a/modules/pkgdb Tue Jun 06 17:29:00 2017 +0300 2.2 +++ b/modules/pkgdb Wed Jun 07 21:39:55 2017 +0300 2.3 @@ -27,6 +27,7 @@ 2.4 # as well as flavors files for TazLiTo. We don't need logs since we do it 2.5 # manually to ensure everything is fine before syncing the mirror. 2.6 2.7 +# Find how much time was spent the last time (for web interface) 2.8 lastcooktime=$(sed '/Time:/!d; s|.*: *\([0-9]*\)s.*|\1|' $LOGS/pkgdb.log 2>/dev/null | sed '$!d') 2.9 [ -n "$lastcooktime" ] && echo "cook:pkgdb $lastcooktime $(date +%s)" >> $cooktime 2.10 while read cmd duration start; do 2.11 @@ -75,34 +76,41 @@ 2.12 _n 'Creating file "%s"' 'descriptions.txt' | dblog 2.13 rm $PKGS/descriptions.txt 2>/dev/null 2.14 for i in $(ls $WOK | sort); do 2.15 - if [ -e "$WOK/$i/description.txt" ]; then 2.16 - echo "$i" >> descriptions.txt 2.17 - cat "$WOK/$i/description.txt" | sed 's|^$| |' >> descriptions.txt 2.18 + [ -d "$WOK/$i/taz" ] || continue 2.19 + 2.20 + for j in $(ls $WOK/$i/taz | sort); do 2.21 + [ -e "$WOK/$i/taz/$j/description.txt" ] || continue 2.22 + 2.23 + pkgname=$(. $WOK/$i/taz/$j/receipt; echo $PACKAGE) 2.24 + echo "$pkgname" >> descriptions.txt 2.25 + cat "$WOK/$i/taz/$j/description.txt" | sed 's|^$| |' >> descriptions.txt 2.26 echo >> descriptions.txt 2.27 - fi 2.28 + done 2.29 done 2.30 echo " ($(filesize $PKGS/descriptions.txt))" | dblog 2.31 2.32 2.33 _ 'Creating lists from "%s"' "$WOK" | dblog 2.34 cd $WOK 2.35 -for pkg in *; do 2.36 - unset_receipt 2.37 - . $pkg/receipt 2.38 - # PACKED_SIZE and UNPACKED_SIZE are only in built receipt 2.39 - [ -s $pkg/taz/*/receipt ] && . $pkg/taz/*/receipt 2.40 +for i in *; do 2.41 + [ -d "$WOK/$i/taz" ] || continue 2.42 2.43 - if [ -f "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" ] || \ 2.44 - [ -f "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION-$ARCH.tazpkg" ]; then 2.45 + for j in $(ls $WOK/$i/taz | sort); do 2.46 + [ -f "$WOK/$i/taz/$j/receipt" ] || continue 2.47 + unset_receipt 2.48 + . $i/taz/$j/receipt 2.49 2.50 - # packages.desc lets us search easily in DB 2.51 - cat >> $PKGS/packages.desc <<EOT 2.52 + if [ -f "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" -o \ 2.53 + -f "$PKGS/$PACKAGE-$VERSION$EXTRAVERSION-$ARCH.tazpkg" ]; then 2.54 + 2.55 + # packages.desc lets us search easily in DB 2.56 + cat >> $PKGS/packages.desc <<EOT 2.57 $PACKAGE | $VERSION$EXTRAVERSION | $SHORT_DESC | $CATEGORY | $WEB_SITE 2.58 EOT 2.59 2.60 - # packages.txt used by tazpkg and tazpkg-web also to provide 2.61 - # a human readable package list with version and description. 2.62 - cat >> $PKGS/packages.txt <<EOT 2.63 + # packages.txt used by tazpkg and tazpkg-web also to provide 2.64 + # a human readable package list with version and description. 2.65 + cat >> $PKGS/packages.txt <<EOT 2.66 $PACKAGE 2.67 $VERSION$EXTRAVERSION 2.68 $SHORT_DESC 2.69 @@ -110,38 +118,39 @@ 2.70 2.71 EOT 2.72 2.73 - # packages.info combines TazPkg separate files 2.74 - # and will substitute them all 2.75 - SIZES=$(echo $PACKED_SIZE $UNPACKED_SIZE | sed 's|\.0||g') 2.76 - DEPENDS=$(echo $DEPENDS) # remove newlines from some receipts 2.77 - MD5="$(fgrep " $PACKAGE-$VERSION$EXTRAVERSION.tazpkg" $PKGS/packages.md5 | awk '{print $1}')" 2.78 - cat >> $PKGS/packages.info <<EOT 2.79 + # packages.info combines TazPkg separate files 2.80 + # and will substitute them all 2.81 + SIZES=$(echo $PACKED_SIZE $UNPACKED_SIZE | sed 's|\.0||g') 2.82 + DEPENDS=$(echo $DEPENDS) # remove newlines from some receipts 2.83 + MD5="$(fgrep " $PACKAGE-$VERSION$EXTRAVERSION.tazpkg" $PKGS/packages.md5 | awk '{print $1}')" 2.84 + cat >> $PKGS/packages.info <<EOT 2.85 $PACKAGE $VERSION$EXTRAVERSION $CATEGORY $SHORT_DESC $WEB_SITE $TAGS $SIZES $DEPENDS $MD5 $PROVIDE 2.86 EOT 2.87 2.88 - # packages.equiv is used by tazpkg install to check depends. 2.89 - for i in $PROVIDE; do 2.90 - DEST='' 2.91 - echo $i | fgrep -q : && DEST="${i#*:}:" 2.92 - if grep -qs ^${i%:*}= $PKGS/packages.equiv; then 2.93 - sed -i "s/^${i%:*}=/${i%:*}=$DEST$PACKAGE /" \ 2.94 - $PKGS/packages.equiv 2.95 - else 2.96 - echo "${i%:*}=$DEST$PACKAGE" >> $PKGS/packages.equiv 2.97 + # packages.equiv is used by tazpkg install to check depends. 2.98 + for k in $PROVIDE; do 2.99 + DEST='' 2.100 + echo $k | fgrep -q : && DEST="${k#*:}:" 2.101 + if grep -qs ^${k%:*}= $PKGS/packages.equiv; then 2.102 + sed -i "s/^${k%:*}=/${k%:*}=$DEST$PACKAGE /" \ 2.103 + $PKGS/packages.equiv 2.104 + else 2.105 + echo "${k%:*}=$DEST$PACKAGE" >> $PKGS/packages.equiv 2.106 + fi 2.107 + done 2.108 + 2.109 + # files.list provides a list of all packages files. 2.110 + cat $i/taz/$j/files.list | sed s/^/"$i: \0"/ >> $PKGS/files.list 2.111 + 2.112 + # list of unnecessary packages 2.113 + sed -i "/ $PACKAGE-$VERSION$EXTRAVERSION.tazpkg/d" $PKGS/packages.toremove 2.114 + else 2.115 + # if receipt variable HOST_ARCH absent/empty or contains ARCH 2.116 + if [ -z "$HOST_ARCH" -o "${HOST_ARCH/$ARCH/}" != "$HOST_ARCH" ]; then 2.117 + _ ' - absent: %s (%s)' "$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" "$ARCH" | dblog 2.118 fi 2.119 - done 2.120 - 2.121 - # files.list provides a list of all packages files. 2.122 - [ -d $pkg/taz ] && cat $pkg/taz/*/files.list | sed s/^/"$pkg: \0"/ >> $PKGS/files.list 2.123 - 2.124 - # list of unnecessary packages 2.125 - sed -i "/ $PACKAGE-$VERSION$EXTRAVERSION.tazpkg/d" $PKGS/packages.toremove 2.126 - else 2.127 - # if receipt variable HOST_ARCH absent/empty or contains ARCH 2.128 - if [ -z "$HOST_ARCH" -o "${HOST_ARCH/$ARCH/}" != "$HOST_ARCH" ]; then 2.129 - _ ' - absent: %s (%s)' "$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" "$ARCH" | dblog 2.130 fi 2.131 - fi 2.132 + done 2.133 done 2.134 2.135 # Display list size.