#!/bin/bash

BUILD_DATE=`date -u +%Y%m%d`

# root of build tree
BUILD_ROOT=$(cd $(dirname $0); pwd)

echo BuildType: $BUILD_TYPE
echo MajorVersion: $MAJOR_VERSION
echo BuildDate: $BUILD_DATE

case $BUILD_TYPE in
  integration ) 
  	BUILD_QUALIFIER_PREFIX=I
  	BUILD_LABEL=$MAJOR_VERSION.$BUILD_QUALIFIER_PREFIX$BUILD_DATE
  	;;
  stable ) 
  	BUILD_QUALIFIER_PREFIX=M
  	BUILD_LABEL=$MAJOR_VERSION$VERSION_QUALIFIER
  	;;
  release ) 
  	BUILD_QUALIFIER_PREFIX=
  	BUILD_LABEL=$MAJOR_VERSION
  	;;
  *) 
  #default: nightly
  	BUILD_QUALIFIER_PREFIX=N
  	BUILD_LABEL=$MAJOR_VERSION.$BUILD_QUALIFIER_PREFIX$BUILD_DATE
  	;;
esac

QUALIFIER=$BUILD_QUALIFIER_PREFIX$BUILD_DATE
PUBLISH_DIR=$PUBLISH_DIR

echo BuildLabel: $BUILD_LABEL
echo ContextQualifier: $QUALIFIER
echo BuildRoot: $BUILD_ROOT
echo PublishDir: $PUBLISH_DIR

BUILD_HOME=$BUILD_ROOT/build

JAVA_VM_ARGS="-Xms256M -Xmx768M -XX:MaxPermSize=512m"
#JAVA_VM_ARGS="-Xms1024M -Xmx1024M -Xdebug -Xrunjdwp:transport=dt_socket,address=localhost:8000,suspend=n"


if [ "$SKIPFEATURE" != "true" ]; then 
 rm -r -f $BUILD_HOME
 mkdir -p $BUILD_HOME/maps
 cp $BUILD_ROOT/maps/stem.map $BUILD_HOME/maps/

 source $BUILD_ROOT/buildFeature.sh
fi

if [ $? != 0 ]; then 
echo Error building feature  
exit $?;
fi

if [ "$SKIPPRODUCT" != "true" ]; then 
 source $BUILD_ROOT/buildProduct.sh
fi

if [ $? != 0 ]; then
echo Error building product
exit $?;
fi


if [ "$RUNTESTS" = "true" ]; then 
 echo "Running JUnit Tests"
 source $BUILD_ROOT/runTests.sh
fi

if [ $? != 0 ]; then
echo Error running tests
exit $?;
fi





