#!/bin/bash

CHANGELOG=deb/debian/changelog
DIST=unstable
FIRST=1

print_changelog_item() {
	DATE=$(git log -1 --format=%cD ${TAG})
	DEBFULLNAME=$(git log -1 --format=%an ${TAG})
	DEBEMAIL=$(git log -1 --format=%ae ${TAG})

	if [ ${FIRST} = 0 ]; then echo >> ${CHANGELOG}; fi
	FIRST=0

	echo "vpp (${VER}) ${DIST}; urgency=low" >> ${CHANGELOG}
	echo >> ${CHANGELOG}
	echo "${DESC}" >> ${CHANGELOG}
	echo >> ${CHANGELOG}
	echo " -- ${DEBFULLNAME} <${DEBEMAIL}>  ${DATE}" >> ${CHANGELOG}
}

VER=$(scripts/version)
TAG=HEAD
ADDS=$(echo ${VER} | sed -e 's/~.*//'| cut -s -d- -f2)

rm -f ${CHANGELOG}

if [ -n "${ADDS}" ]; then
	DESC="  * includes ${ADDS} commits after $(echo ${VER}| cut -d- -f1) release"
	print_changelog_item
fi

for TAG in $(git tag -l 'v[0-9].[0-9].[0-9]' | sort -r ); do
	VER=$(echo ${TAG}| sed -e 's/^v//')
	DESC=$(git tag -l -n20 ${TAG} | tail -n+2 | sed -e 's/^ */  /')
	print_changelog_item
done
