#!/bin/bash -e
#
# This script should be called by the maintainer; It prepares a new
# version of loop-aes-modules from the current loop-aes-source package
# and the chosen kernels.
#
# It builds debian/control from template debian/control.in and adds 
# binary packages for normal kernels (loop-aes-$KVERS) and udebs 
# (loop-aes-$KVERS-di) from the template control.modules.in. It also
# adds a meta package for each flavour.
#
# $Id: gencontrol 1897 2006-08-16 11:10:35Z max $
#

KERNELS="2.6.17-2"
KERNELS_DI="2.6.17-2"
ARCHS=$(grep -v '^#' debian/archs)

test -f debian/changelog || {
    echo error: debian/changelog not found
    exit 1
}

control_add_source () {
    sed -ne ' /^Source: loop-aes-modules$/,/^$/p' \
      < debian/control.in >> debian/control
}

CONTROL_TEMPLATE="modules/loop-aes/debian/control.modules.in"

control_add_package () {
    arch=$1
    kvers=$2
    flavour=$3

    sed -ne '
      /^Package: loop-aes-_KVERS_$/,/^$/ {
        # set architecture
        s/^\(Architecture\): any/\1: '$arch'/;
        
        # depend on linux-image package
        s/^\(Depends\): \(.*\)/\1: linux-image-'$kvers-$flavour', \2/;
  
        /^\(Recommends\|Conflicts\|Replaces\):/ bignore;

        # replace _KVERS_ with kernel version
        s/_KVERS_/'$kvers-$flavour'/g;
        p; 
        :ignore
      }' < $CONTROL_TEMPLATE >> debian/control

    echo >> debian/control
}

control_add_meta () {
    arch=$1
    kvers=$2
    flavour=$3
    major=${kvers%.*}
    cat >> debian/control <<END
Package: loop-aes-$major-$flavour
Depends: loop-aes-$kvers-$flavour
Architecture: $arch
Description: loop-AES modules for kernel $major-$flavour
 This package will always depend on the loop-AES module package
 built for the latest $major kernel image available for $flavour.

END
}

latest_version () {
    latest=
    for version in $*; do
        if [ -z $latest ] || dpkg --compare-versions $version gt $latest; then
            latest=$version
        fi
    done
    echo $latest
}

rm -rf modules
tar -xjf /usr/src/loop-aes.tar.bz2

> debian/control
control_add_source

# add normal packages
for kvers in $KERNELS; do
    for arch in $ARCHS; do
        > debian/kernels/2.6/$arch
        for flavour in $(grep -v '^#' debian/flavours/2.6/$arch); do
            echo Package: loop-aes-$kvers-$flavour [$arch]
            control_add_package $arch $kvers $flavour
            echo $kvers-$flavour >> debian/kernels/2.6/$arch
        done
    done
done

# add meta packages
kvers=$(latest_version $KERNELS)
for arch in $ARCHS; do
    > debian/kernels/2.6-meta/$arch
    for flavour in $(grep -v '^#' debian/flavours/2.6/$arch); do
        echo Package: loop-aes-${kvers%.*}-$flavour [$arch]
        control_add_meta $arch $kvers $flavour
        echo ${kvers%.*}-$flavour >> debian/kernels/2.6-meta/$arch
    done
done

rm -rf modules

# vim:set ts=4 sw=4 expandtab:
