#!/bin/sh
dir=$1;
status=$2; # true status (probably 'development')
STATUS=$3; # status we're being coerced into
extrafile=

case "$STATUS" in
  alpha|beta) dir="$dir.$STATUS";;
  development) dir="$dir.alpha";;
  svnsnapshot) STATUS=development;
               extrafile=config/svnversion;
               svnversion > config/svnversion;
               dir="$dir.svn`cat config/svnversion`";;
esac
tarfile=$dir.tar
v='config/version'

if test "$status" != "$STATUS"; then
  mv $v $v.old
  sed -e "s/status=.*/status=$STATUS/" $v.old > $v
  tar cf $tarfile `config/get_MANIFEST` $extrafile
  mv $v.old $v
else
  tar cf $tarfile `config/get_MANIFEST` $extrafile
fi

if test -d $dir; then
  echo "Remove $dir before building a new release"; exit 1
fi
mkdir $dir && mv $tarfile $dir
cd $dir && tar xf $tarfile && rm -f $tarfile && cd ..
tar cf $tarfile $dir
rm -f config/svnversion
rm -rf $dir
rm -f $tarfile.gz
gzip  $tarfile
