#!/bin/sh

# This script prepares and creates a .tar.gz package of FFC.

echo "Before making a new release of FFC, remember to verify the output"
echo "(using scripts/verify) and then check out a clean version."
sleep 2

# Update version number in ChangeLog
pico -w ChangeLog

# Update version number in ffc
pico -w src/bin/ffc

# Update version number in setup.py
pico -w setup.py

# Get the version number
VERSION=`grep 'FFC_VERSION =' src/bin/ffc | cut -d'"' -f2`

# Run benchmark problem
echo Running benchmark problem
cd src/bench
echo "FFC version $VERSION" >> bench.log
date >> bench.log
echo "" >> bench.log
./bench >> bench.log
cd ../../

# Commit changes to cvs
cvs commit

# Write a message
echo Creating release $VERSION of FFC

# Create the directory
DISTDIR=ffc-$VERSION
echo "Creating directory $DISTDIR"
mkdir $DISTDIR

# Copy files
FILES=`ls | grep -v $DISTDIR`
cp -R $FILES $DISTDIR

# Remove unecessary files
REMOVE1=`find $DISTDIR | grep CVS`
REMOVE2=`find $DISTDIR -name '*~'`
REMOVE="$REMOVE1 $REMOVE2"
rm -rf $REMOVE

# Create the archive
TARBALL="ffc-$VERSION.tar.gz"
echo "Creating arhive: $TARBALL"
tar zcf $TARBALL $DISTDIR

# Remove the directory
echo 'Removing temporary directory'
rm -rf $DISTDIR

# Copy archive and files to web page
scp $TARBALL fenics@fenics.org:www.fenics.org/pub/software/ffc/v0.1
scp ChangeLog fenics@fenics.org:www.fenics.org/pub/software/ffc/
scp TODO fenics@fenics.org:www.fenics.org/pub/software/ffc/

# Notify ffc-dev of the new version
SUBJECT="Version "$VERSION" of FFC released"
cat ChangeLog | mail -s "$SUBJECT" ffc-dev@fenics.org
