#!/bin/bash

ARCHIVEDIR=$HOME/debian/repository
BINARYDIR=$ARCHIVEDIR/dists/dapper/main/binary-i386
SOURCEDIR=$ARCHIVEDIR/dists/dapper/main/source
POOL=pool

RELEASEARCHIVE="dapper"
RELEASECOMPONENT="main"
RELEASEORIGIN="Bernard Blackham <bernard at blackham dot com dot au>"
RELEASELABEL="dagobah"

makerelease() {
	cat <<EOT
Archive: $RELEASEARCHIVE
Component: $RELEASECOMPONENT
Origin: $RELEASEORIGIN
Label: $RELEASELABEL
Architecture: $1
EOT
}

mkdir -p $ARCHIVEDIR || exit $((100+$LINENUMBER))
mkdir -p $ARCHIVEDIR/$POOL || exit $((100+$LINENUMBER))
mkdir -p $BINARYDIR || exit $((100+$LINENUMBER))
mkdir -p $SOURCEDIR || exit $((100+$LINENUMBER))

shopt -s nullglob

for i in incoming/* ; do
	echo -n "$i ... "
	EXTENSION="`echo $i | sed -re 's/^.*\.([^\.]*)$/\1/'`"
	PACKAGE="`echo $i | sed -re 's/^(.*\/)?([^-_]+).*$/\2/'`"
	VERSION="`echo $i | sed -re '/^[^_]+_[^_]+_.*$/!d;s/^[^_]+_([^_]+)_.*$/\1/'`"
	/bin/mkdir -p $ARCHIVEDIR/$POOL/$PACKAGE || exit $((100+$LINENUMBER))
	case $EXTENSION in
		deb)
			/bin/mv $i $ARCHIVEDIR/$POOL/$PACKAGE/ || exit $((100+$LINENUMBER))
			echo "binary moved."
		;;
		dsc|changes|gz)
			/bin/mv $i $ARCHIVEDIR/$POOL/$PACKAGE/ || exit $((100+$LINENUMBER))
			echo "source moved."
		;;
		*)
			echo " what do I do with $i ??? "
		;;
	esac
done

cd $ARCHIVEDIR

echo -n "Regenerating Packages.gz ... "
apt-ftparchive packages $POOL > $BINARYDIR/Packages
gzip -c < $BINARYDIR/Packages > $BINARYDIR/Packages.gz
echo "done."

makerelease i386 > $BINARYDIR/Release

echo -n "Regenerating Sources.gz ... "
apt-ftparchive sources $POOL > $SOURCEDIR/Sources
gzip -c < $SOURCEDIR/Sources > $SOURCEDIR/Sources.gz
echo "done."

makerelease source > $SOURCEDIR/Release

echo -n "Fixing permissions ... "
find -type d -exec chmod 755 {} \;
find -type f -exec chmod 644 {} \;
echo "done."

