forked from Lainports/freebsd-ports
63 lines
1.4 KiB
Bash
Executable file
63 lines
1.4 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# buildfailure <arch> <branch> <buildid> <pkgname>
|
|
|
|
cleanup() {
|
|
echo "Problem writing new failure file!"
|
|
rm -f failure.new
|
|
exit 1
|
|
}
|
|
|
|
# configurable variables
|
|
pb=/var/portbuild
|
|
|
|
usage () {
|
|
echo "usage: buildfailure arch branch buildid pkgname"
|
|
exit 1
|
|
}
|
|
|
|
if [ $# -ne 4 ]; then
|
|
usage
|
|
fi
|
|
|
|
arch=$1
|
|
branch=$2
|
|
buildid=$3
|
|
pkgname=$4
|
|
shift 4
|
|
|
|
builddir=${pb}/${arch}/${branch}/builds/${buildid}
|
|
|
|
. ${pb}/${arch}/portbuild.conf
|
|
. ${pb}/scripts/buildenv
|
|
|
|
buildenv ${pb} ${arch} ${branch} ${builddir}
|
|
|
|
# Don't pick up installed packages from the host
|
|
export LOCALBASE=/nonexistentlocal
|
|
export X11BASE=/nonexistentx
|
|
|
|
index=${PORTSDIR}/${INDEXFILE}
|
|
|
|
portloc=$(grep "^$pkgname|" ${index} | cut -f 2 -d \| | sed s,/usr/ports/,,)
|
|
pkgbase=$(cd ${PORTSDIR}/${portloc}/ && make -V PKGBASE)
|
|
|
|
cd ${pb}/${arch}/${branch}
|
|
entry=$(grep "^${portloc}|" failure)
|
|
date=$(date +%s)
|
|
IFS='|'
|
|
if [ ! -z "$entry" ]; then
|
|
count=$(echo $entry | cut -f 6 -d \ )
|
|
olddate=$(echo $entry | cut -f 4 -d \ )
|
|
(grep -v "^${portloc}|" failure > failure.new) || cleanup
|
|
|
|
(echo "${portloc}|${pkgbase}|${pkgname}|${olddate}|${date}|$((${count}+1))" >> failure.new) || cleanup
|
|
mv failure.new failure
|
|
else
|
|
(echo "${portloc}|${pkgbase}|${pkgname}|${date}|${date}|1" >> failure) || cleanup
|
|
fi
|
|
|
|
link=${pb}/${arch}/${branch}/latest/${portloc}
|
|
mkdir -p $(dirname ${link})
|
|
errorloc=$(realpath ${builddir}/errors/${pkgname}.log)
|
|
ln -sf ${errorloc} ${link}
|