#!/bin/bash

set -o errexit
set -o nounset

# $1 : package filename
# $2 : sum of delta size to go from this package to the database one
cleanup_aux() {
	pkg=$1
	size=$2
	delta=$dir/deltas
	grep "$pkg$" $delta |
	while read line ; do
		deltaname=$(echo $line | cut -d' ' -f1)
		deltasize=$(echo $line | cut -d' ' -f3)
		pkg2=$(echo $line | cut -d' ' -f4)
		newsize=$(( $size + $deltasize  ))
		#echo $pkg2 $newsize
		cleanup_aux $pkg2 $newsize
	done
	if [[ $size -gt $limitsize ]]; then
		echo $deltaname $newsize
	fi
}

# $1 : an entry directory in a database
cleanup() {
	dir=$1
	if [ ! -f $dir/desc -o ! -f $dir/deltas ]; then
		return
	fi
	pkgfile=$(grep -A1 FILENAME $dir/desc | tail -n1)
	pkgsize=$(grep -A1 CSIZE $dir/desc | tail -n1)
	limitsize=$(( $pkgsize * 7 / 10 ))
	#echo $pkgfile : $pkgsize $limitsize
	cleanup_aux $pkgfile 0
}


cleanup $1

