#!/bin/sh

DISTRIBUTION=squeeze
grep -q wheezy /etc/apt/sources.list && DISTRIBUTION=wheezy
MIRRORSITE=http://ftp.de.debian.org/debian
#MIRRORSITE=http://127.0.0.1:3142/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 debootstrap"

BINDMOUNTS=/var/cache/pbuilder_i386/result
HOOKDIR=/etc/pbuilder/hook386.d

if [ "$1" = build ]; then
 shift
 pbuilder build --aptcache /var/cache/pbuilder_i386/aptcache --basetgz /var/cache/pbuilder_i386/base.tgz --buildplace /var/cache/pbuilder_i386/build/ --buildresult /var/cache/pbuilder_i386/result/ --allow-untrusted --distribution "$DISTRIBUTION" --mirror "$MIRRORSITE" --bindmounts "$BINDMOUNTS" --hookdir "$HOOKDIR" "$@"
 cd /var/cache/pbuilder_i386/result && sort-packages
 exit
fi

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

# 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 --yes apt-utils

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

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

cat<<EOF >/var/cache/pbuilder_i386/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_i386/result ./
deb $MIRRORSITE $DISTRIBUTION $COMPONENT
EOF

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

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

apt-get update
EOT

if ! [ -f /var/cache/pbuilder_i386/base.tgz ]; then
 mkdir -p "$BINDMOUNTS"
 mkdir -pv /var/cache/pbuilder_i386/build
 mkdir -pv /var/cache/pbuilder_i386/aptcache
 time pbuilder create --aptcache /var/cache/pbuilder_i386/aptcache --basetgz /var/cache/pbuilder_i386/base.tgz --buildplace /var/cache/pbuilder_i386/build/ --buildresult /var/cache/pbuilder_i386/result/  --debootstrapopts --arch --debootstrapopts i386 --distribution "$DISTRIBUTION" --mirror "$MIRRORSITE" --bindmounts "$BINDMOUNTS" --hookdir "$HOOKDIR" $DEBOOTSTRAP
 for x in ccache pbuildd pbuilder-mnt pbuilder-umlresult; do mkdir -pv /var/cache/pbuilder_i386/$x; done
fi
