#!/bin/bash

set -e

function get_kpkg()
{
	kpkg=`dpkg-query --showformat='${Version}' --show linux-headers-${rele}-$1`

	if [ -z "$kpkg" ]; then
		echo "can't detect version of kernel headers for flavour $1"
		exit 1
	fi
}

#env
# generate control only when actually building (inside pbuilder chroot)
if [ -z "$DEB_TARGET_ARCH" ]; then
	exit 0
fi

if ! [ -s debian/control.in ] || \
   ! [ -s debian/control.flavour.in ]; then
	echo "missing input files"
	exit 1
fi

arch=$1
rele=$2
flav=$3

if [ -z "$arch" ] || [ -z "$rele" ] || [ -z "$flav" ]; then
	echo "usage: $0 <deb-arch> <release> <flavours>"
	exit 1
fi

debv=`dpkg-parsechangelog -SVersion`
if [ -z "$debv" ]; then
	echo "can't detect package version"
fi

deps=""
for f in $flav; do
	get_kpkg $f
	f="-$f"
	deps="${deps}${comma}linux-headers-${rele}${f} (=${kpkg})"
	comma=", "
done

cat debian/control.in | sed \
	-e "s#HEADER_DEPS#${deps}#g" \
	-e 's#DEBVER#'${debv}'#g' \
	 > debian/control

for f in $flav; do
	get_kpkg $f
	cat debian/control.flavour.in | sed \
	-e 's#ARCH#'${arch}'#g' \
	-e 's#FLAVOUR#'${f}'#g' \
	-e 's#KRELEASE#'${rele}'#g' \
	-e 's#KPKGVER#'${kpkg}'#g' \
	-e 's#DEBVER#'${debv}'#g' \
	 >> debian/control
done

echo "---- generated control file:"
cat debian/control
echo "----"
