summaryrefslogtreecommitdiff
path: root/sign-and-upload-all
diff options
context:
space:
mode:
Diffstat (limited to 'sign-and-upload-all')
-rwxr-xr-xsign-and-upload-all110
1 files changed, 110 insertions, 0 deletions
diff --git a/sign-and-upload-all b/sign-and-upload-all
new file mode 100755
index 000000000..255ce0620
--- /dev/null
+++ b/sign-and-upload-all
@@ -0,0 +1,110 @@
+#!/bin/bash
+
+cd "$(dirname "$(readlink -e "$0")")"
+
+
+for distro in arch artix; do
+ upkgs=$(
+ ssh ${distro}linuxewe@eckner.net '
+ bsdtar -Oxf os/'"$(pacman-conf Architecture)"'/'"${distro}"'linuxewe.db.tar.gz \
+ | sed -n '"'"'
+ /^%FILENAME%$/ {
+ N
+ s/^.*\n//
+ p
+ }
+ '"'"'
+ '
+ )
+ unset archs
+ declare -A archs
+ for pkg in */${distro}/*.pkg.tar.zst; do
+ [ -f "${pkg}" ] \
+ || continue
+ printf '%s\n' "${pkg##*/}" \
+ | grep -qxF "${upkgs}" \
+ && continue
+ [ -f "${pkg}.sig" ] \
+ || gpg --detach-sign -u 5FDCA472AB93292BC678FD59255A76DB9A12601A "${pkg}" \
+ || exit 1
+ arch="${pkg##*-}"
+ arch="${arch%%.*}"
+ archs["${arch}"]=1
+ done
+
+ for arch in "${!archs[@]}"; do
+ rsync -av --progress --ignore-existing */${distro}/*-${arch}.pkg.tar.zst{,.sig} ${distro}linuxewe@eckner.net:os/${arch}/
+ pkgs=$(
+ printf '%s\n' */${distro}/*-${arch}.pkg.tar.zst \
+ | sed 's@^.*/@@' \
+ | tr '\n' ' '
+ )
+
+ if [ "${arch}" = 'any' ]; then
+ ssh ${distro}linuxewe@eckner.net '
+ cd os
+ for arch in */; do
+ cd ${arch}
+ for pkg in '"${pkgs}"'; do
+ ln -s ../any/${pkg}
+ ln -s ../any/${pkg}.sig
+ done
+ repo-add -s -k 0x3CFB0AD8F60030F8 '"${distro}"'linuxewe.db.tar.gz '"${pkgs}"'
+ find -maxdepth 1 -mindepth 1 -not -type d -printf '"'"'%f\n'"'"' \
+ | grep -vxFf <(
+ ls '"${distro}"'linuxewe.db*
+ bsdtar -Oxf '"${distro}"'linuxewe.db.tar.gz \
+ | sed -n '"'"'
+ /^%FILENAME%$/ {
+ N
+ s/^.*\n//
+ p
+ s/$/.sig/
+ p
+ }
+ '"'"'
+ ) \
+ | xargs -r rm -f
+ cd ..
+ done
+ cd any
+ find -maxdepth 1 -mindepth 1 -not -type d -printf '"'"'%f\n'"'"' \
+ | grep -vxFf <(
+ for db in ../*/'"${distro}"'linuxewe.db.tar.gz; do
+ bsdtar -Oxf "${db}"
+ done \
+ | sed -n '"'"'
+ /^%FILENAME%$/ {
+ N
+ s/^.*\n//
+ p
+ s/$/.sig/
+ p
+ }
+ '"'"'
+ ) \
+ | xargs -r rm -f
+ '
+ else
+ ssh ${distro}linuxewe@eckner.net '
+ cd os/'"${arch}"'
+ repo-add -s -k 0x3CFB0AD8F60030F8 '"${distro}"'linuxewe.db.tar.gz '"${pkgs}"'
+ find -maxdepth 1 -mindepth 1 -not -type d -printf '"'"'%f\n'"'"' \
+ | grep -vxFf <(
+ ls '"${distro}"'linuxewe.db*
+ bsdtar -Oxf '"${distro}"'linuxewe.db.tar.gz \
+ | sed -n '"'"'
+ /^%FILENAME%$/ {
+ N
+ s/^.*\n//
+ p
+ s/$/.sig/
+ p
+ }
+ '"'"'
+ ) \
+ | xargs -r rm -f
+ '
+ fi
+ done
+done