1
1
mirror of https://gitlab.archlinux.org/archlinux/infrastructure.git synced 2025-01-18 08:06:16 +01:00
infrastructure/roles/archbuild/files/pkgdiffrepo
Jan Alexander Steffens (heftig) a4f2a7d228
archbuild: Also skip log files
2019-06-26 20:45:57 +02:00

72 lines
1.5 KiB
Bash
Executable File

#!/bin/zsh
setopt extendedglob nomatch
die() {
echo $* >&2
exit 1
}
[[ -f PKGBUILD ]] || die "no PKGBUILD"
# Need some space
export TMPDIR=/var/tmp
pkgnames=()
arches=()
eval $(bash -c '
source PKGBUILD &>/dev/null </dev/null
printf "pkgbase=%q\n" "${pkgbase:-$pkgname}"
printf "pkgnames+=(%q)\n" "${pkgname[@]}"
printf "arches+=(%q)\n" "${arch[@]}"
if [[ -n $epoch ]]; then
printf "version=%q\n" "$epoch:$pkgver-$pkgrel"
else
printf "version=%q\n" "$pkgver-$pkgrel"
fi
')
reports=()
for arch in $arches; do
newfiles=( ${^pkgnames}-${version}-${arch}.pkg.tar*~*.(sig|log)(Nom[1]) )
if (( ${#newfiles} != ${#pkgnames} )); then
echo >&2 "Skipping arch ${arch}, missing packages"
continue
fi
oldfiles=( /srv/ftp/pool/*/${^pkgnames}-[^-]##-[^-]##-${arch}.pkg.tar*~*.sig(Nom[1]) )
tmp=$(mktemp --directory --tmpdir pkgdiffrepo.${pkgbase}-${version}-${arch}.XXXXXXXXXX)
>$tmp/new.xml <<END
<version>${version}</version>
<group>${pkgbase} ${arch}</group>
<packages>
${(F)newfiles}
</packages>
END
>$tmp/old.xml <<END
<version>before-${version}</version>
<group>${pkgbase} ${arch}</group>
<packages>
${(F)oldfiles}
</packages>
END
pkgdiff -report-path $tmp/report.html -details -width 150 $tmp/old.xml $tmp/new.xml
if [[ -n $tmp/report.html ]]; then
reports+=($tmp)
else
rm -rf $tmp
fi
done
TRAPINT() {}
for tmp in $reports; do
elinks $tmp/report.html -config-file ./usr/local/share/elinks-pkgdiffrepo.conf
rm -rf $tmp
done
# vim:set sw=2 et: