#!/bin/bash
. bash_helper_functions

# If the first argument to this script is the word major then the 
# major version number is updated and the minor is set back to 0.

report_failure ()
{
    echo "  **** failed to complete **** "
    exit 1
}


./testenv_rel || report_failure



REVNUM_FILE=.logger_revnum
CHANGESET_ID=`git rev-parse HEAD`

rm -rf release || report_failure
mkdir release || report_failure


if [ "$1" = "major" ] 
    then
    MAJOR_NUM=`echo $MAJOR_NUM+1|bc`
    MINOR_NUM=0 
else 
    MINOR_NUM=`echo $MINOR_NUM+1|bc`
fi;
set_dlib_version MAJOR $MAJOR_NUM
set_dlib_version MINOR $MINOR_NUM
set_dlib_version PATCH 0 

RELEASE=${MAJOR_NUM}.${MINOR_NUM} 
# Commit changes to the version numbers so that the makedocs script will use them.
echo Create git tags and commit release
git commit -a -m "Created release v$RELEASE" || report_failure
git tag v$RELEASE || report_failure

./makedocs makerel || exit 1

echo $CHANGESET_ID > $REVNUM_FILE
set_dlib_version PATCH 99 
git commit -a -m "Record last changeset and set PATCH version to 99"


cd release || report_failure
RELDIR=`echo dlib-$RELEASE`
mkdir $RELDIR
cd $RELDIR || report_failure
cp -r ../../docs/cache/* . || report_failure

echo Version: $RELEASE >> README.md
echo "Date:    `date`" >> README.md
echo Mercurial Revision ID: $CHANGESET_ID >> README.md



WEBPAGE=`echo dlib_webpage-$RELEASE.tar`
SOURCE_ZIP=`echo $RELDIR.zip`
SOURCE_TAR=`echo $RELDIR.tar`
tar -C ../../docs/chm -cf - docs/ documentation.html | tar -xf - || report_failure
cd .. || report_failure

tar -cf $SOURCE_TAR $RELDIR  || report_failure
# flip everything to MS-DOS line endings 
#find $RELDIR -name "*.cpp" -or -name "*.h" -or -name "*.txt" -or -name "*.html" -or -name "*.py" | xargs flip -m
find $RELDIR -name "*.cpp" -or -name "*.h" -or -name "*.txt" -or -name "*.html" -or -name "*.py" | xargs unix2dos &> /dev/null 

zip -r9 $SOURCE_ZIP $RELDIR > /dev/null || report_failure
tar -C ../docs -cf $WEBPAGE web || report_failure
bzip2 $SOURCE_TAR || report_failure
bzip2 $WEBPAGE || report_failure

rm -rf $RELDIR

# Don't make the chm doc file since hhc.exe doesn't run in any copy of wine anymore :(
#wine ../docs/chm/htmlhelp/hhc.exe ../docs/chm/lib.hhp 
#mv ../docs/chm/help.chm dlib_documentation-$RELEASE.chm || report_failure


mkdir v$RELEASE
#mv dlib_documentation-$RELEASE.chm v$RELEASE
mv $SOURCE_TAR.bz2 v$RELEASE
mv $SOURCE_ZIP v$RELEASE




