#!/bin/sh
# This script creates a template to update the ChangeLog.

get_ver() {
	git describe --abbrev=0 --tags --match 'v*' "$@"
}

if [ "$1" = -h -o $# = 0 ]; then
	cat >/dev/stderr <<-!
	Usage: $0 version [commit]
!
	exit 1
fi

set -- "$@" HEAD

prev="$(get_ver "$2")"

git shortlog --format='* %s' -w80,0 "$prev".."$2" |
awk '
!/^\*/ && /:$/ {
	$NF=""
	author = $0
	next
}
!/^$/ {
	print author, ">", $0
}
' | sort |
awk -vver="$1" -F'  > ' '
BEGIN {
	printf "Version: %s, %s\n", ver, strftime("%Y-%m-%d")
}
END {
	print "\n\n"
}
author != $1 {
       print "\n  [", $1, "]\n"
       author = $1
}
{
	sub(/^[^>]*> /, "")
	print
}
'
