#!/bin/bash

# THE FIRST PARAMETER IS THE VERSION STRING

if [ $# != 1 ]; then
    echo
    echo 'Usage: release version-string'
    echo 
    echo "WARNING: This script modifies the repository, so don't use it unless"
    echo '         you really want to make a release'
    exit 1
fi

set -e

function make-dir () {
    if [ ! -d $1 ]; then
	mkdir $1
    fi
}

VERSION=$1
PKGNAME='lemon'
VERSION_STRING='svnhead'

make-dir release-dir
cd release-dir

echo
echo '**********************************************************************'
echo '   CHECK OUT'
echo '**********************************************************************'
echo

rm -rf trunk
svn co https://hugo.cs.elte.hu/svn/hugo/trunk
# svn lock https://hugo.cs.elte.hu/svn/hugo/trunk

cd trunk

echo
echo '**********************************************************************'
echo "   CHANGE THE VERSION TO ${VERSION}"
echo '**********************************************************************'
echo

sed "s/${VERSION_STRING}/${VERSION}/" <configure.ac >configure.ac.tmp
mv configure.ac.tmp configure.ac

echo
echo '**********************************************************************'
echo '   CREATE TARBALL'
echo '**********************************************************************'
echo

./bootstrap --amver=1.7
./configure CXXFLAGS='-g -O2 -W -Wall -Werror' --enable-gui --enable-demo --enable-benchmark
make doc
make distcheck 

cd ..

echo
echo '**********************************************************************'
echo '   CREATE THE OTHER TAR FILES'
echo '**********************************************************************'
echo

mv trunk/${PKGNAME}-${VERSION}.tar.gz .
tar xzf ${PKGNAME}-${VERSION}.tar.gz
mv ${PKGNAME}-${VERSION}/doc/html ./${PKGNAME}-doc-${VERSION}
tar czf ${PKGNAME}-doc-${VERSION}.tar.gz ${PKGNAME}-doc-${VERSION}
tar czf ${PKGNAME}-${VERSION}-nodoc.tar.gz ${PKGNAME}-${VERSION}
rm -rf ${PKGNAME}-${VERSION} ${PKGNAME}-doc-${VERSION}

echo
echo '**********************************************************************'
echo '   CREATE SVN TAG'
echo '**********************************************************************'
echo

svn cp trunk https://hugo.cs.elte.hu/svn/hugo/tags/${PKGNAME}-${VERSION} -m "Version ${VERSION} released."
# svn unlock https://hugo.cs.elte.hu/svn/hugo/trunk
