34 lines
1.2 KiB
Bash
Executable File
34 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Laeuft als unprivilegierter User "mirror" (siehe entrypoint.sh, der als root
|
|
# den gemeinsamen Signing-Key nach $GNUPGHOME kopiert und dann per setpriv
|
|
# hierher wechselt).
|
|
set -euo pipefail
|
|
|
|
: "${GPG_KEY_ID:?GPG_KEY_ID muss gesetzt sein (gemeinsamer Signing-Key, siehe .env)}"
|
|
: "${MIRROR_REPO_ID:=company-mirror}"
|
|
: "${SYNC_INTERVAL_SECONDS:=21600}"
|
|
|
|
# Der Key wird NICHT vom Container erzeugt: beide Spiegel benutzen denselben,
|
|
# extern erzeugten Key aus ./gpg (den entrypoint.sh als root hierher kopiert
|
|
# hat). Ist er unbrauchbar, ist der ganze Sync sinnlos - lieber sofort und mit
|
|
# einer Meldung abbrechen, die sagt, was stattdessen im Schluesselbund liegt.
|
|
# shellcheck source=/dev/null
|
|
. /usr/local/lib/gpg-import.sh
|
|
require_usable_signing_key
|
|
|
|
mkdir -p /srv/dnf
|
|
gpg --batch --yes --armor --export "$GPG_KEY_ID" > /srv/dnf/RPM-GPG-KEY-mirror
|
|
echo "[entrypoint] Public Key nach /srv/dnf/RPM-GPG-KEY-mirror exportiert."
|
|
|
|
term_handler() {
|
|
echo "[entrypoint] Beende nach aktuellem Sync-Lauf ..."
|
|
exit 0
|
|
}
|
|
trap term_handler SIGTERM SIGINT
|
|
|
|
while true; do
|
|
/usr/local/bin/sync.sh || echo "[entrypoint] sync.sh ist mit Fehler beendet, naechster Versuch in ${SYNC_INTERVAL_SECONDS}s"
|
|
sleep "$SYNC_INTERVAL_SECONDS" &
|
|
wait $!
|
|
done
|