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