cookutils rev 744
cook pkgdb: report absent pkgs, remove duplicates from lists (also use --rmpkg to remove duplicate .tazpkg files or remove them by hands)
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Mon Jun 22 12:14:50 2015 +0300 (2015-06-22) |
parents | d15a44a622f6 |
children | 85f682116a0c |
files | cook |
line diff
1.1 --- a/cook Sun Jun 07 11:22:35 2015 +0300 1.2 +++ b/cook Mon Jun 22 12:14:50 2015 +0300 1.3 @@ -1438,7 +1438,7 @@ 1.4 rm $LOGS/pkgdb.log 2>/dev/null 1.5 1.6 case "$2" in 1.7 - --flavors) ;; 1.8 + --flavors|--rmpkg) ;; 1.9 *) 1.10 [ -n "$2" ] && PKGS="$2" 1.11 if [ ! -d "$PKGS" ]; then 1.12 @@ -1468,6 +1468,7 @@ 1.13 _n 'Creating file "%s"' 'packages.md5' | dblog 1.14 md5sum *.tazpkg > $PKGS/packages.md5 1.15 echo " ($(filesize $PKGS/packages.md5))" | dblog 1.16 + cp $PKGS/packages.md5 $PKGS/packages.toremove # list of duplicates 1.17 1.18 md5sum packages.md5 | cut -d' ' -f1 > ID 1.19 ( cat ./ID | tr $'\n' ' '; date -ur ./ID +%s ) > IDs # md5 and timestamp 1.20 @@ -1534,6 +1535,11 @@ 1.21 # files.list provides a list of all packages files. 1.22 cat $pkg/taz/*/files.list | sed s/^/"$pkg: \0"/ >> \ 1.23 $PKGS/files.list 1.24 + 1.25 + # list of duplicates 1.26 + sed -i "/ $PACKAGE-$VERSION$EXTRAVERSION.tazpkg/d" $PKGS/packages.toremove 1.27 + else 1.28 + _ ' - absent: %s (%s)' "$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" "$ARCH" | dblog 1.29 fi 1.30 done 1.31 1.32 @@ -1545,6 +1551,22 @@ 1.33 1.34 cd $PKGS 1.35 1.36 + 1.37 + # Check package duplicates 1.38 + if [ -s "$PKGS/packages.toremove" ]; then 1.39 + newline | dblog 1.40 + _ 'Removing duplicates:' | dblog 1.41 + while read pkgsum pkgfile; do 1.42 + echo " - $pkgfile" | dblog 1.43 + sed -i "/${pkgfile%.tazpkg}/d" $PKGS/packages.list 1.44 + sed -i "/ $pkgfile/d" $PKGS/packages.md5 1.45 + [ -n "$rmpkg" ] && rm $PKGS/$pkgfile # remove packages only with --rmpkg 1.46 + done < $PKGS/packages.toremove 1.47 + [ -n "$rmpkg" ] && rm $PKGS/packages.toremove 1.48 + newline | dblog 1.49 + fi 1.50 + 1.51 + 1.52 # files.list.lzma 1.53 _n 'Creating file "%s"' 'files.list.lzma' | dblog 1.54 touch files.list