#!/bin/bash

declare -A sources

pushd $(dirname $0) > /dev/null

for pkg in $(reprepro list upstream-sources | awk {print\ \$2}); do
    sources[$pkg]=$(reprepro listfilter upstream-sources '$source (== '$pkg')'| awk {print\ \$3})
done

if [ x"$1" = x"-a" ]; then
	dists=$(find dists -mindepth 1 -maxdepth 1 -type d -printf %P\\n | grep -v upstream-sources | grep -v testing)
else
	for dist in $(distro-info --all) $(ubuntu-distro-info --all); do
		[ -d dists/$dist ] && dists="$dists $dist"
	done
fi

for dist in $dists; do
    for srcpkg in ${!sources[*]}; do
        srcversion=${sources[$srcpkg]}
        #reprepro listfilter $dist "Package (== $srcpkg), \$Architecture (== source)"
        distsrcversion=$(reprepro listfilter $dist "Package (== $srcpkg), \$Architecture (== source)"|awk {print\ \$3})
        if [ ! -z "$distsrcversion" ]; then
            if dpkg --compare-versions $distsrcversion \<= $srcversion~~$dist; then
                echo $dist $PWD/pool/main/*/$srcpkg/${srcpkg}_${srcversion}.dsc
            fi
        else
            echo $dist $PWD/pool/main/*/$srcpkg/${srcpkg}_${srcversion}.dsc
        fi
    done
done

popd > /dev/null
