#!/bin/bash

release=testing
aptget="apt-get -c /var/tmp/apt-checkdep/etc/apt/apt.conf"

check_dep() {
  ret=0
  echo -n "checking dependency of ${1##*/} on $release ["
  for package in `cat $1/binary-*/Packages | sed -ne 's/^Package: // p' | sort | uniq`; do
    echo -n " $package"
    if ! ( $aptget install $package > /dev/null 2>&1 ); then
      ret=1
      echo -n "(NG)"
    else
      echo -n "(ok)"
    fi
  done
  echo " ]: done"
  return $ret
}

$aptget update > /dev/null

sources=$1
if [ -z "$sources" ]; then
  sources="`echo dists/unstable/[a-z0-9]*`"
fi

for source in $sources; do
  if check_dep $source; then
    echo -n "installing ${source##*/} to $release: "
    rsync -a $source dists/$release && echo "done"
  fi
done


# ----

for arch in dists/$release/ALL/binary-*; do
  echo -n "Generating ${arch}/Packages:"
  rm -f ${arch}/Packages{,.gz}
  find dists/$release -path \*/$(basename $arch)/Packages -print \
    | xargs cat > ${arch}/Packages.new && \
      mv ${arch}/Packages.new ${arch}/Packages
  gzip -9 -c ${arch}/Packages > ${arch}/Packages.gz
  echo " done."
done

echo -n "Generating dists/$release/ALL/source/Sources:"
rm -f dists/$release/ALL/source/Sources{,.gz}
find dists/$release -path \*/Sources -print \
  | xargs cat > dists/$release/ALL/source/Sources.new && \
     mv dists/$release/ALL/source/Sources.new dists/$release/ALL/source/Sources
gzip -9 -c dists/$release/ALL/source/Sources > dists/$release/ALL/source/Sources.gz
echo " done."
