#!/bin/bash
#
# Prepare a delivery of a new version by changing VERSION/TAG from stable
#
# $Id$
#
# Syntax: mknewversion
#

umask 022
dname=`dirname $0`
prem=`echo $dname |cut -c1`
if [ ${prem} == "/" ]; then
	export TOOLHOME=$dname
else
	export TOOLHOME=${PWD}/$dname
fi

. $TOOLHOME/common-env
. $TOOLHOME/distro-env

# We need to get $VER
if [ "$1" = "" ]; then
	LAST=`cat ${TOPDIR}/LAST`
else
	LAST=$1
	shift
fi
VER=`echo $LAST | cut -d- -f1`
MAJVER=`echo $VER | cut -d. -f1-2`
MINDIMAJVER=`echo $VER | cut -d. -f1`
MINDIMINVER=`echo $VER | cut -d. -f2`
((MINDIMAJVER=$MINDIMAJVER-1))
MINVER=`echo $VER | cut -d. -f3`
TAG=1
((MINVER=$MINVER+1))
VER=${MAJVER}.${MINVER}
echo "Changing Version $LAST to ${VER}-${TAG}"
grep -q stable $TOOLHOME/../mondo/VERSION
if [ $? -ne 0 ]; then
	echo "A new version can only be made from stable"
	exit -1
fi
nb=`svn diff $TOOLHOME/.. | wc -l`
if [ $nb -gt 0 ]; then
	echo "You'll have to check in before changing version"
else
	svn copy $SVN_M/branches/stable $SVN_M/branches/${VER}
	cd $TOOLHOME/../..
	svn co $SVN_M/branches/${VER} ${VER}
	cd ${VER}
	echo "$TAG" > tools/TAG
	for p in mindi mondo mondo-doc mindi-kernel; do
		v=${VER}
		if [ $p == "mindi" ]; then
			v=${MINDIMAJVER}.${MINDIMINVER}.${MINVER}
		fi
		echo "$v" > $p/VERSION
		if [ -f $p/ChangeLog ]; then
			grep -q "${v}-${TAG}" $p/ChangeLog
			if [ $? -ne 0 ]; then
				echo "You'll have to document in ${p}'s ChangeLog for ${v}-${TAG} related modifications"
				exit -1
			fi
		fi
	done
	svn ci -m "Creation of ${VER}-$TAG"
	svn up
fi
