#!/bin/sh

NAME="Test-AutoBuild"

TEST_RESULTS=$1
test -z "$TEST_RESULTS" && TEST_RESULTS=results.log

# Exit immediately if command fails
set -e

# Print command executed to stdout
set -v

AUTOBUILD_PERL5LIB=`perl -e 'use Config; my $dir = $Config{sitelib}; $dir =~ s|/usr|$ENV{AUTOBUILD_INSTALL_ROOT}|; print $dir'`
if [ -z "$PERL5LIB" ]; then
  export PERL5LIB=$AUTOBUILD_PERL5LIB
else
  export PERL5LIB=$PERL5LIB:$AUTOBUILD_PERL5LIB
fi

# Make things clean.

[ -f Makefile ] && make -k realclean ||:
rm -rf MANIFEST blib

# Make makefiles.

perl Makefile.PL PREFIX=$AUTOBUILD_INSTALL_ROOT

# Build the RPM.
make
make manifest
if [ -n "$HTMLURLPREFIX" ]
then
  make htmlifypods HTMLURLPREFIX=$HTMLURLPREFIX
fi

if [ -z "$USE_COVER" ]; then
  perl -MDevel::Cover -e '' 1>/dev/null 2>&1 && USE_COVER=1 || USE_COVER=0
fi
rm -f test.log
if [ -z "$SKIP_TESTS" -o "$SKIP_TESTS" = "0" ]; then
  if [ "$USE_COVER" = "1" ]; then
    cover -delete
    rm -rf coverage-report
    set -o pipefail
    TZ=GMT HARNESS_PERL_SWITCHES=-MDevel::Cover make test TEST_VERBOSE=1 | tee $TEST_RESULTS
    cover
    mkdir coverage-report
    mv cover_db/*.html cover_db/*.css coverage-report
    mv coverage-report/coverage.html coverage-report/index.html
    rm -rf cover_db
  else
    set -o pipefail
    TZ=GMT make test TEST_VERBOSE=1 | tee $TEST_RESULTS
  fi
fi
# Repeat in different timezone to verify Repo functionality
TZ=EDT make test TEST_VERBOSE=1 TEST_FILES=t/110-Repository-*.t | tee $TEST_RESULTS


make INSTALLMAN3DIR=$AUTOBUILD_INSTALL_ROOT/share/man/man3 install

rm -f $NAME-*.tar.gz
make dist

if [ -x /usr/bin/rpmbuild ]; then
  if [ -n "$AUTOBUILD_COUNTER" ]; then
    EXTRA_RELEASE=".auto$AUTOBUILD_COUNTER"
  else
    NOW=`date +"%s"`
    EXTRA_RELEASE=".$USER$NOW"
  fi
  rpmbuild -ta --define "extra_release $EXTRA_RELEASE" --clean $NAME-*.tar.gz
fi

if [ -x /usr/bin/fakeroot -a -f /etc/debian_version ]; then
  fakeroot debian/rules clean
  fakeroot debian/rules DEBDIR=$AUTOBUILD_PACKAGE_ROOT/debian binary
fi