#!/bin/sh

if [ -z "$JOB_URL" ]; then
  JOB_URL=http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/
fi

sigtest_prev=$WORKSPACE/nbbuild/build/prevsigtest/snapshot
(
  mkdir -p $sigtest_prev && cd $sigtest_prev/.. && \
  wget "$JOB_URL""lastSuccessfulBuild/artifact/nbbuild/build/sigtest/snapshot/*zip*/snapshot.zip" &&
  unzip snapshot.zip
) || exit 1
echo SigTest: Previous Snapshots
ls $sigtest_prev
echo SigTest: Checking All Changes
ANT_OPTS='-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/ant-check-sigtests.hprof' ant -Dsigtest.basedir=$sigtest_prev check-sigtests -verbose
for report in `pwd`/nbbuild/build/sigtest/check-snapshot/*; do
  if ! expr "$report" : ".*/TESTS-.*" && grep 'failures="1"' $report >/dev/null; then
    sigtest_email=`cat $report | grep "^email:" | grep -v commit.mail | cut -c 8-`
    if [ -z "$sigtest_email" ]; then
      sigtest_email="api-changes@netbeans.org"
    fi
    content=`cat $report`
    (
        echo "Code changes:";
        echo "http://deadlock.netbeans.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/changes"; 
        echo "API changes:";
        echo "http://deadlock.netbeans.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/artifact/nbbuild/build/sigtest/check-snapshot/html/index.html"; 
        echo "Failure output is available as StdErr output of sigtest test for appropriate module.";
#                echo "http://deadlock.netbeans.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/artifact/$sigtest_out/`basename $report`"; 
        echo; 
        expr "$content" : ".*CDATA\[\(.*\)\]\].*"
    ) | mail -s "`basename $report` - sigchanges in $JOB_NAME build #$BUILD_NUMBER" $sigtest_email
  fi
done
echo SigTest: Checking All Changes Done

echo SigTest: Generating Golden Files
ant gen-sigtests || exit 1
echo SigTest: Generating Golden Files Done

echo SigTest: Incompatible Changes
ant check-sigtests-release -Dfail.on.error=false
echo SigTest: Incompatible Changes Done

