#!/bin/bash
# Called by Makefile to deal with making releases
#	- putting dates into man pages, mikmod.h etc.
#	- making tgzs for release or testing

MAJOR=`cat .major`
MINOR=`cat .minor`
if [ -f .patchlevel ]; then 
	PATCH=`cat .patchlevel`
else
	PATCH=0
fi
SHORTDATE=`date +'%d %b %y'`
LONGDATE=`date +'%d %B %Y'`
if [ $PATCH -gt 0 ] ; then
	VER="$MAJOR.$MINOR-devel$PATCH"
else
	VER="$MAJOR.$MINOR-unix"
fi

case $1 in

newpatch)
	NEWPATCH=$[$PATCH+1]
	echo $NEWPATCH > .patchlevel 
	NEWVER="$MAJOR.$MINOR-devel$NEWPATCH"

	echo ".patchlevel updated"

	export mikversion="-= MIKMOD v$MAJOR.$MINOR.$NEWPATCH - Unix development version, $SHORTDATE =---\n"
	echo '#define mikversion' \"$mikversion\" >version.h
	echo "version.h updated"

	echo ".TH MIKCVT 1 \"Version $NEWVER, $LONGDATE\"" > ../docs/mikcvt.1.new
	sed 1d ../docs/mikcvt.1 >>../docs/mikcvt.1.new
	mv -f ../docs/mikcvt.1.new ../docs/mikcvt.1
	echo "mikcvt.1 updated"

	echo ".TH MIKMOD 1 \"Version $NEWVER, $LONGDATE\"" > ../docs/mikmod.1.new
	sed 1d ../docs/mikmod.1 >>../docs/mikmod.1.new
	mv -f ../docs/mikmod.1.new ../docs/mikmod.1
	echo "mikmod.1 updated"

	echo "MikMod for Unix $NEWVER, $LONGDATE" > ../docs/README.1ST.new
	sed 1d ../docs/README.1ST >>../docs/README.1ST.new
	mv -f ../docs/README.1ST.new ../docs/README.1ST
	echo "README.1ST updated"

	echo "MikMod for Unix $NEWVER, $LONGDATE" > ../docs/credits.txt.new
	sed 1d ../docs/credits.txt >>../docs/credits.txt.new
	mv -f ../docs/credits.txt.new ../docs/credits.txt
	echo "credits.txt updated"

	make clean
	if [ $PATCH -lt 1 ] ; then
		(cd ../.. ; ln -s CURRENT mikmod-$NEWVER)
	else
		(cd ../.. ; mv mikmod-$VER mikmod-$NEWVER)
	fi
	echo "directories/sym-links updated"

	( cd ../.. ;\
	tar -cf - mikmod-$NEWVER/* | gzip -9 >mikmod-$NEWVER.tar.gz)
	cp ../docs/Changes ../docs/ToDo ../..
	( cd ../.. ;\
	echo "tar-file mikmod-$NEWVER.tar.gz created"

	echo -en "<a href=mikmod-$NEWVER.tar.gz>" >../public_html/mikmod-devel/mikmod-devel-download.txt;\
	ls -al --full-time mikmod-$NEWVER.tar.gz |awk '{print $11,"</a>"$5,"bytes",$7,$8,$10,"<p>"}' >>../public_html/mikmod-devel/mikmod-devel-download.txt )
	( cd ../../../public_html/mikmod/ ; rm mikmod-$VER.tar.gz ; ln -s ../../mikmod/mikmod-$NEWVER.tar.gz)
	echo "web-pages updated"

#	chiarkweb
#	geoweb
#	clubweb
;;

newminor)
	NEWMINOR=$[$MINOR+1]
	echo $NEWMINOR > .minor 
	NEWPATCH=
	echo $NEWPATCH > .patchlevel 
	NEWVER="$MAJOR.$MINOR-unix"
	export mikversion="-= MIKMOD v$MAJOR.$MINOR - Unix version =---\n"
	echo '#define mikversion' \"$mikversion\" >version.h

	echo ".TH MIKCVT 1 \"Version $NEWVER, $LONGDATE\"" > ../docs/mikcvt.1.new
	sed 1d ../docs/mikcvt.1 >>../docs/mikcvt.1.new
	mv -f ../docs/mikcvt.1.new ../docs/mikcvt.1

	echo ".TH MIKMOD 1 \"Version $NEWVER, $LONGDATE\"" > ../docs/mikmod.1.new
	sed 1d ../docs/mikmod.1 >>../docs/mikmod.1.new
	mv -f ../docs/mikmod.1.new ../docs/mikmod.1

	echo "MikMod $NEWVER, $LONGDATE" > ../docs/README.1ST.new
	sed 1d ../docs/README.1ST >>../docs/README.1ST.new
	mv -f ../docs/README.1ST.new ../docs/README.1ST

	echo "MikMod $NEWVER, $LONGDATE" > ../docs/credits.txt.new
	sed 1d ../docs/credits.txt >>../docs/credits.txt.new
	mv -f ../docs/credits.txt.new ../docs/credits.txt

	make clean
	make
	make semiclean
	(cd ../.. ; mv mikmod-$VER mikmod-$NEWVER)
	( cd ../.. ;\
	tar -cvf - mikmod-$NEWVER/* | gzip -9 >mikmod-$NEWVER.tar.gz)
	cp ../docs/Changes ../docs/ToDo ../..
;;

*)
	echo Error! ;;

esac
