1
1
mirror of https://gitlab.archlinux.org/archlinux/infrastructure.git synced 2025-01-18 08:06:16 +01:00
infrastructure/roles/archbuild/files/diffrepo
Jan Alexander Steffens (heftig) b232d6f8b9
archbuild: Improve diffrepo
2019-06-26 02:07:18 +02:00

38 lines
877 B
Bash
Executable File

#!/bin/zsh
setopt extendedglob nomatch
parse() {
local pkgdata
IFS=- read -A pkgdata <<<"${${1:t}%.pkg.tar*}"
pkgname=${(j:-:)pkgdata[1,-4]}
epoch=
pkgver=${pkgdata[-3]}
pkgrel=${pkgdata[-2]}
arch=${pkgdata[-1]}
IFS=: read -A pkgdata <<<$pkgver
if (( ${#pkgdata} > 1 )); then
epoch=${pkgdata[1]}:
pkgver=${pkgdata[2]}
fi
}
function {
local pkgname epoch pkgver pkgrel arch
for pkg in $(makepkg --packagelist); do
parse $pkg
if [[ -n $1 ]]; then
otherpkg=( /srv/ftp/pool/*/${pkgname}-${1}-${arch}.pkg.tar*~*.sig(Nom[1]) )
else
otherpkg=( /srv/ftp/pool/*/${pkgname}-[^-]##-[^-]##-${arch}.pkg.tar*~*.sig(Nom[1]) )
fi
if [[ -n $otherpkg ]]; then
${${(%):-%x}:A:h}/diffpkg $otherpkg $pkg
else
print -P "%F{11}%BWarning:%b No repo package found for $pkg%f"
fi
done
} $1
# vim:set sw=2 et: