#!/bin/sh

DISTRIBUTION=squeeze
MIRRORSITE=http://ftp.de.debian.org/debian
COMPONENT="main contrib non-free"
DEBOOTSTRAP=""

#DISTRIBUTION=gutsy
#MIRRORSITE=http://de.archive.ubuntu.com/ubuntu
#COMPONENT="main restricted universe multiverse"
DEBOOTSTRAP="--debootstrap cdebootstrap"

BINDMOUNTS=/var/cache/pbuilder/result
HOOKDIR=/etc/pbuilder/hook.d

if [ "$1" = build ]; then
 shift
 pbuilder build --distribution "$DISTRIBUTION" --mirror "$MIRRORSITE" --bindmounts "$BINDMOUNTS" --hookdir "$HOOKDIR" "$@"
 exit
fi

[ "$1" = "clean" ] && rm -rf /var/cache/pbuilder/*

# http://edseek.com/~jasonb/articles/pbuilder_backports/pbuilderbuild.html

rm -rf "$HOOKDIR"
mkdir -p "$HOOKDIR"
touch "$HOOKDIR"/D01apt-ftparchive
chmod 755 "$HOOKDIR"/D01apt-ftparchive
ln -fs D01apt-ftparchive "$HOOKDIR"/F01apt-ftparchive
cat<<EOT >> "$HOOKDIR"/D01apt-ftparchive

#!/bin/sh

# Be sure apt-ftparchive is installed!

[ -x /usr/bin/apt-ftparchive ] || apt-get install apt-utils

# We want this to be up to date for _every_ run for magic to happen!

( cd /var/cache/pbuilder/result ;
  apt-ftparchive packages . > /var/cache/pbuilder/result/Packages
)

cat<<EOF >/var/cache/pbuilder/result/Release
Archive: $DISTRIBUTION
Component: main
Origin: pbuilder
Label: pbuilder
Architecture: $(dpkg --print-architecture)
EOF

cat<<EOF >/etc/apt/sources.list
deb file:///var/cache/pbuilder/result ./
deb $MIRRORSITE $DISTRIBUTION $COMPONENT
deb http://backports.debian.org/debian-backports $DISTRIBUTION-backports main
EOF

cat<<EOF >/etc/apt/preferences
Package: *
Pin: release o=pbuilder
Pin-Priority: 701

Package: *
Pin: release a=$DISTRIBUTION
Pin-Priority: 600

Package: *
Pin: release n=$DISTRIBUTION-backports
Pin-Priority: 600
EOF

apt-get update
EOT

if ! [ -f /var/cache/pbuilder/base.tgz ]; then
 mkdir -p "$BINDMOUNTS"
 time pbuilder create --distribution "$DISTRIBUTION" --mirror "$MIRRORSITE" --bindmounts "$BINDMOUNTS" --hookdir "$HOOKDIR" $DEBOOTSTRAP
fi
