#! /bin/sh -e

cd /org/bugs.debian.org/versions/indices

ARCHIVES='ftp' # security -- should be included too, but too difficult to deal with

# Nuke old versions of versions.idx.new in case there's one hanging about
rm -f versions.idx.new
# This index is much larger and keeps track of historic versions of
# packages, and is used for expiring bugs
rm -f versions_time.idx.new
if [ -e versions_time.idx ]; then
    cp versions_time.idx versions_time.idx.new;
fi;

set -e
for archive in $ARCHIVES; do
    case $archive in
	ftp)
	    SUITES='oldstable stable proposed-updates testing testing-proposed-updates unstable experimental'
	    di_main='main main/debian-installer'
	    ;;
	nonus)
	    SUITES='oldstable'
	    di_main='main'
	    ;;
	security)
	    SUITES='oldstable stable testing'
	    di_main='main'
	    ;;
    esac
    for suite in $SUITES; do
        if [ "$suite" != "oldstable" ] || [ -d /org/bugs.debian.org/etc/indices/$archive/$suite ]; then
	case $suite in
	    oldstable|stable|proposed-updates)
		ARCHES='alpha amd64 arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc'
		;;
	    testing|testing-proposed-updates)
		ARCHES='alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc'
		;;
	    unstable|experimental)
		ARCHES='alpha amd64 arm hppa hurd-i386 i386 ia64 m68k mips mipsel powerpc s390 sparc'
		;;
	esac
	case $suite in
	    oldstable|experimental)
		COMPONENTS='main contrib non-free'
		;;
	    stable|proposed-updates|testing|testing-proposed-updates|unstable)
		COMPONENTS="$di_main contrib non-free"
		;;
	esac
	for component in $COMPONENTS; do
	    for arch in $ARCHES; do
		zcat "/org/bugs.debian.org/etc/indices/$archive/$suite/$component/binary-$arch/Packages.gz" | ../bin/build-mldbm.pl "$archive" "$suite" "$arch"
	    done
	    if [ "$component" != main/debian-installer ]; then
		zcat "/org/bugs.debian.org/etc/indices/$archive/$suite/$component/source/Sources.gz" | ../bin/build-mldbm.pl "$archive" "$suite" source
	    fi
	done
	fi
    done
done

# This removes old versions
../bin/versions_time_cleanup

chmod 664 versions.idx.new
mv versions.idx.new versions.idx

chmod 664 versions_time.idx.new
mv versions_time.idx.new versions_time.idx