#!@SH@
# $NetBSD: report,v 1.1.1.1 2007/06/19 19:49:59 joerg Exp $
#
# Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>.
# All rights reserved.
#
# This code was developed as part of Google's Summer of Code 2007 program.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.

. @PBULK_CONFIG@

set -e

echo "Build reports..."
${report_script} ${loc}
${bzip2} -zc ${loc}/report > ${loc}/report.bz2
${report_html_script} ${loc} ${bulklog}
${report_txt_script} ${loc}

${report_graph_script} ${loc}
if [ "`grep -- "->" < ${loc}/report.dot | wc -l`" -lt ${report_graph_script_limit} ]; then
	${pkg_add} ${packages}/All/graphviz
	${prefix}/bin/neato -Tsvg -Goverlap=ortho -Gsplines=true \
	    -o ${loc}/report.svg ${loc}/report.dot
else
	rm -f ${loc}/report.svg
fi

while read line; do
	case "${line}" in
	BUILD_START=*)
		build_start=${line#BUILD_START=}
		;;
	PLATFORM=*)
		platform=${line#PLATFORM=}
	esac
done < ${loc}/status

if [ -z "${build_start}" ]; then
	echo "Could not find start time of build."
	exit 1
fi

echo "Sending report mail..."
formatted_start=`date -r ${build_start} "+%F %R"`
report_dir=`date -r ${build_start} "+%Y%m%d.%H%M"`
cat ${loc}/report.txt | ${mail} -s "pkgsrc ${platform} ${formatted_start}" joerg@bec.de

cd ${bulklog}
echo "Uploading report..."
{
	echo "meta/report.bz2"
	echo "meta/report.txt"
	echo "meta/report.html"
	echo "meta/report.dot"
	echo "meta/report.svg"
	echo "meta/status"
	while read pkg; do
		echo "${pkg}/pre-clean.log"
		echo "${pkg}/depends.log"
		echo "${pkg}/checksum.log"
		echo "${pkg}/configure.log"
		echo "${pkg}/build.log"
		echo "${pkg}/install.log"
		echo "${pkg}/package.log"
		echo "${pkg}/clean.log"
		echo "${pkg}/deinstall.log"
		echo "${pkg}/work.log"
	done < ${loc}/error
} | {
	echo "+ meta/"
	while read pkg; do
		echo "+ ${pkg}/"
	done < ${loc}/error

	while read file; do
		[ -f "$file" ] && echo "+ $file"
	done
	echo "- *"
} | ${rsync} --exclude-from=- ${report_rsync_args} . ${report_rsync_target}/${report_dir}
