function logBuildDetails {
	echo  "************************************************************"	
	echo "Starting build at `date +%Y-%m-%d_%H:%M`"
	echo "Project : $PROJECT"
	echo "Branch : $BRANCH"
	echo "Built on server: `hostname`"
	echo "Built by user : `whoami`"
	JAVA_VERSION=`java -version 2>&1 |awk 'NR==1{ gsub(/"/,""); print $3 }'` 
	echo "JAVA Version: $JAVA_VERSION"
	echo `ant -version`

	 echo "**********************************************************"
}

function performBuild {
	
	cd $SRC_PATH/$PROJECT
	
	check ant clean
	check ant archive-ls-ear-legacy
	check ant archive-ls-ear-precomp
	check ant archive-integration-ear
	check ant archive-ws-ear
	check ant archive-mktgtool-ear
	ant replace-cache-token
}


function packageBuild {
	cd $SRC_PATH
	tmpdir=$PROJECT-$BRANCH-$TIMESTAMP
	echo $tmpdir
	mkdir $tmpdir
	cd $tmpdir
	mkdir deploy 
	check cp ${SRC_PATH}/$PROJECT/build/deploy/*.ear deploy/
       #check cp ${SRC_PATH}/$PROJECT/build/deploy/MarketingTool.war deploy/
	check cp -r ${SRC_PATH}/$PROJECT/config .
	check cp -r ${SRC_PATH}/$PROJECT/Database .
	check cp $LOG .
	check cd $SRC_PATH 
	check tar -czvf $tmpdir.tgz $tmpdir
	rm -rf $tmpdir

}

function checkOutClean {
	echo 'starting checkoutClean'
	mkdir -p $SRC_PATH
	cd $SRC_PATH
	rm -rf $PROJECT

	# if NO  branch\tag specified
	if [ -z $BRANCH ] 
	then
		check cvs -Q co -P $PROJECT
                echo "checking out from $PROJECT"
	else
		check cvs -Q checkout -P -r $BRANCH $PROJECT
                echo "checking out from $BRANCH $PROJECT"

	fi

}


function deployBuild {
	#remove the files first incase build by other user
	rm -f /jbdef/deploy/Landslide.ear
	rm -f /jbdef/deploy/LandslideWs.ear
	rm -f /jbdef/deploy/MarketingTool.war

	check  cp -f ${SRC_PATH}/$PROJECT/build/deploy/*.ear /jbdef/deploy/
#	check  cp -f ${SRC_PATH}/$PROJECT/build/deploy/MarketingTool.war /jbdef/deploy
}



function configureBuild {
	echo 'starting configureBuild'
	cp  ${SRC_PATH}/$PROJECT/build.properties-sample $BRANCH/build.properties
	#sed -i 's/jvm=default/jvm=jvm1/g' $BRANCH/build.properties
	#echo 'completed configureBuild'
}

function configurePostDeploy {
	echo 'starting configurePostDeploy'
	echo $SERVER
        cp -f $DIR/ds/oracle-ds-$DB.xml /jbdef/deploy/oracle-ds.xml
        sed -i "s/devbox4/${SERVER}/g" $SRC_PATH/$PROJECT/config/properties/landslide.properties-uat
	sed -i 's/sslEnabled=false/sslEnabled=true/g' $SRC_PATH/$PROJECT/config/properties/landslide.properties-uat
        cp -f $SRC_PATH/$PROJECT/config/properties/landslide.properties-uat /jbdef/conf/landslide.properties
	echo 'completed configurePostDeploy'
}

PROG=`basename $0`

function build_failed() {
    echo " * * * BUILD FAILED!"
    cd $DIR
    echo "build failed" >> $LOG
    ./email_report "FAILURE: Nightly Build $hostname" \
        $LOG
    exit 0;
}

function check() {
        echo "$PROG: + $*"
        eval $*
        status=$?
        echo "$PROG: [exit $status] $*"
        case $status in
            0 ) ;;
            * ) build_failed ;;
        esac
}



function summarize() {
        LINES=${2-"10"}
        FILENAME=$1
        OUTPUT=SUMMARY-nightly_app_build.txt
        cd ~/nightly_builds
        cat <<EOM >> $OUTPUT
 * SUMMARY ONLY *
\\\\devbox\\garym\\nightly_builds\\$FILENAME
EOM
        check "tail -$LINES $FILENAME >> $OUTPUT";
}
