#!/bin/bash

# Run this script after tools/make-archive

set -e

if [ -n "$STABLE_BUILDDIR" ] && $STABLE_BUILDDIR; then
  TMPDIR=/tmp/dpkg-buildpackage/bird
  if [ -d $TMPDIR ]; then
    echo "Another build is running in $TMPDIR, bad!"
    exit 1
  fi
  mkdir -p $TMPDIR
  pushd $TMPDIR
    rm -rf *
  popd
else
  TMPDIR=$(readlink -f $(mktemp -dp .))
fi

PKGVERSION=$(tools/version)
DEBPKGSTEM=bird${PKGVERSION:0:1}_$PKGVERSION
DEBIAN_RELEASE=$(lsb_release -cs)
PKG_FIXUP=${PKG_FIXUP:=1}

if [ "$((PKG_FIXUP+0))" != "$PKG_FIXUP" ]; then
  echo "Weird PKG_FIXUP value, must be integer: $PKG_FIXUP"
  exit 1
fi

if [ -z "$PKG_RELINFO" ]; then
  if [ "$PKG_FIXUP" == "1" ]; then
    PKG_RELINFO="upstream package"
  else
    echo "PKG_RELINFO must be supplied together with PKG_FIXUP"
    exit 1
  fi
fi

ORIG=$(pwd)
DIRTARGET=$(lsb_release -is)-$(lsb_release -rs | tr '/' '-')
DIRTARGET=${DIRTARGET,,}
SRCTARGET=${ORIG}/pkg/srcpkgs/$DIRTARGET/$DEBPKGSTEM-cznic.$PKG_FIXUP/
BINTARGET=${ORIG}/pkg/pkgs/$DIRTARGET/$DEBPKGSTEM-cznic.$PKG_FIXUP/

echo "Packaging BIRD $PKGVERSION for $(lsb_release -is) $(lsb_release -rs) $(lsb_release -cs) in $TMPDIR"

mkdir -p $SRCTARGET $BINTARGET

pushd $TMPDIR
  cp ${ORIG}/bird-$PKGVERSION.tar.gz $DEBPKGSTEM.orig.tar.gz
  tar xf $DEBPKGSTEM.orig.tar.gz
  pushd bird-$PKGVERSION
    # Fix time
    COMMIT_DATE=@$(stat -c '%Y' ChangeLog)

    # Local-fix version
    cp -r ${ORIG}/distro/pkg/deb debian
    sed -i "s#{{ version }}#$PKGVERSION#;s#{{ release }}#${PKG_FIXUP}~$DEBIAN_RELEASE#;s#{{ now }}#$(date -d "$COMMIT_DATE" -R)#;s#{{ relinfo }}#${PKG_RELINFO}#;" debian/changelog
    touch -d "$COMMIT_DATE" debian debian/*

    # Create source package
    dpkg-buildpackage -S -sa -d -us -uc
    cp ../bird?_*-cznic* ${SRCTARGET}/
    cp ../bird?_*.orig.tar.gz ${SRCTARGET}/
  popd

  rm -rf bird-$PKGVERSION
  dpkg-source -x *.dsc

  pushd bird${PKGVERSION:0:1}-$PKGVERSION
    # Check for crossbuild
    if [ -n "$CROSSBUILD_ARCH" ]; then
      export CONFIG_SITE=/etc/dpkg-cross/cross-config.$CROSSBUILD_ARCH
      export DEB_BUILD_OPTIONS=nocheck
      DPKG_OPTS="--host-arch $CROSSBUILD_ARCH -Pcross,nocheck"
    fi

    # Build locally
    dpkg-buildpackage -B -sa -d -us -uc $DPKG_OPTS
    mv ../bird?{,-dbgsym}_*-cznic* ${BINTARGET}/
    cp ../bird?_*.orig.tar.gz ${BINTARGET}/
  popd
popd

rm -rf $TMPDIR
