freebsd-ports/Tools/portbuild/scripts/processfail

78 lines
2.1 KiB
Bash
Executable file

#!/bin/sh
#
# processfail <arch> <branch>
arch=$1
branch=$2
pb=/var/portbuild
of=/usr/local/www/data/errorlogs/.${arch}-${branch}-failure.html
cd ${pb}/${arch}/${branch}
if [ -e .newfailure.stamp -a $(echo $(find . -maxdepth 1 -newer .newfailure.stamp -name newfailure 2>&1 /dev/null | wc -l)) = "0" ]; then exit; fi
touch .newfailure.stamp
newfailure=${pb}/${arch}/${branch}/newfailure
num=$(wc -l ${newfailure} | awk '{print $1}')
header() {
echo "<html><head><title>New package building errors</title>" >$of
echo "</head><body><h1>New package building errors</h1>" >>$of
if [ "$num" -eq "0" ]; then
echo "No errors (yet)" >>$of
else
echo "<table border=1>" >>$of
echo "<tr>$1</tr>" >>$of
fi
}
footer() {
echo "</table>" >>$of
echo "</body>" >>$of
echo "</html>" >>$of
}
#
# Create "default" output, sorted on portname
#
header "<th>Port</th><th>Package</th><th>Broken</th><th>Last</th><th>#</th>"
dirname() {
echo ${1%/*}
}
basename() {
echo ${1##*/}
}
sort -r -n -k 4 -t \| failure > newfailure
IFS='|'
while read dir name ver date last count; do
echo "<tr>" >> $of
echo "<td><a href=\"http://cvsweb.freebsd.org/ports/$dir\">$dir</a></td>" >> $of
if [ -L ${pb}/${arch}/${branch}/latest/${dir} ]; then
err=$(readlink ${pb}/${arch}/${branch}/latest/${dir})
echo "<td><a href=\"${arch}-errorlogs/$(basename $(dirname ${err}))/$(basename ${err})\">$ver</a></td>" >> $of
else
echo "<td><a href=\"${arch}-${branch}-latest/$ver.log\">$ver</a></td>" >> $of
fi
# echo "<td align=\"right\">$affby</td><td align=\"right\">$4 Kb</td>" >> $of
# echo "<td><a href=\"http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/$5\">$5</a></td>" >> $of
# echo "<td><a href=\"mailto:$6\">$6</a></td>" >> $of
# echo "<td>" >> $of
alphadate=$(date -jf %s ${date} "+%F %T")
alphalast=$(date -jf %s ${last} "+%F %T")
echo "<td>${alphadate}</td>" >> $of
echo "<td>${alphalast}</td>" >> $of
echo "<td>$count</td>" >> $of
echo "</tr>" >> $of
done < newfailure
footer ""
mv -f $of /usr/local/www/data/errorlogs/${arch}-${branch}-failure.html