Update userkeys.sh
This commit is contained in:
52
userkeys.sh
52
userkeys.sh
@@ -1,13 +1,49 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
# Zeitlimits für curl (Sekunden)
|
# Konfiguration
|
||||||
CONNECT_TIMEOUT=2
|
CONNECT_TIMEOUT=2
|
||||||
MAX_TIME=2
|
MAX_TIME=2
|
||||||
|
|
||||||
# Zuerst die URL auf git.nauheimtech.de versuchen
|
URLS=(
|
||||||
curl -sf --connect-timeout $CONNECT_TIMEOUT --max-time $MAX_TIME \
|
"https://git.nauheimtech.de/StefanMewes/keyserver/raw/branch/main/$1/keys"
|
||||||
https://git.nauheimtech.de/StefanMewes/keyserver/raw/branch/main/$1/keys && exit 0
|
"https://raw.githubusercontent.com/Hobbabobba/keyserver/refs/heads/main/$1/keys"
|
||||||
|
)
|
||||||
|
|
||||||
# Falls die erste URL fehlschlägt, die GitHub-URL versuchen
|
pids=()
|
||||||
curl -sf --connect-timeout $CONNECT_TIMEOUT --max-time $MAX_TIME \
|
tmpfiles=()
|
||||||
https://raw.githubusercontent.com/Hobbabobba/keyserver/refs/heads/main/$1/keys
|
|
||||||
|
# Curl-Requests parallel starten, Output in Tempfiles
|
||||||
|
for url in "${URLS[@]}"; do
|
||||||
|
tmp=$(mktemp)
|
||||||
|
tmpfiles+=("$tmp")
|
||||||
|
(
|
||||||
|
if curl -fsS --connect-timeout "$CONNECT_TIMEOUT" --max-time "$MAX_TIME" \
|
||||||
|
"$url" >"$tmp" 2>/dev/null; then
|
||||||
|
echo "$tmp" # signalisiert Erfolg
|
||||||
|
fi
|
||||||
|
) &
|
||||||
|
pids+=($!)
|
||||||
|
done
|
||||||
|
|
||||||
|
# Auf den ersten erfolgreichen Job warten
|
||||||
|
while ((${#pids[@]})); do
|
||||||
|
if wait -n; then
|
||||||
|
# Erfolgreichen Output suchen
|
||||||
|
for tmp in "${tmpfiles[@]}"; do
|
||||||
|
if [[ -s "$tmp" ]]; then
|
||||||
|
cat "$tmp"
|
||||||
|
rm -f "${tmpfiles[@]}"
|
||||||
|
# Restprozesse beenden & aufräumen
|
||||||
|
for pid in "${pids[@]}"; do kill "$pid" 2>/dev/null || true; done
|
||||||
|
wait || true
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Falls keiner erfolgreich war
|
||||||
|
rm -f "${tmpfiles[@]}"
|
||||||
|
echo "❌ Keine Keys abrufbar (URLs: ${URLS[*]})" >&2
|
||||||
|
exit 1
|
||||||
|
|||||||
Reference in New Issue
Block a user