#!/bin/bash

set -e

dir=$1
release=$2
version=$3

if test -z "$dir" -o -z "$release" -o -z "$version"; then
    echo "usage: $0 DIR RELEASE VERSION" >&2
    exit 1
fi

cd $dir || ( echo "dir does not exist: $dir">&2; exit 1 )
test -f NEWS || ( echo "no NEWS in $dir">&2; exit 1 )
package=`perl -e 'local $/; $_=<>; ($foo) = /([\w-]+) [^=\n]*\n=+/s; print $foo;' < NEWS`

echo "* preparing $package NEWS for $release $version"

rm -f NEWS.new

# header & description
perl -e 'local $/; $_=<>; ($foo) = /^([^=]*)\n\n\n/s; print $foo;' < NEWS >> NEWS.new
echo >> NEWS.new
echo >> NEWS.new
echo >> NEWS.new
# new news
heading="$package $version -- `date +'%Y-%m-%d'`"
echo $heading >> NEWS.new
len=`echo $heading | wc -m`
for ((i=1; $i<$len; i=$i+1)); do
    echo -n = >> NEWS.new
done
echo >> NEWS.new
echo >> NEWS.new
echo "* ChangeLog diff (process this into NEWS):" >> NEWS.new
perl -e 'local $/; $_=<>; ($foo) = /^(.*?[Rr]eleased[^\n]+)/s; print $foo;' < ChangeLog >> NEWS.new
echo >> NEWS.new
echo >> NEWS.new
# old news
perl -e 'local $/; $_=<>; ($foo) = /([^=\n]*\n=+\n.*)/s; print $foo;' < NEWS >> NEWS.new

mv NEWS.new NEWS
