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
|
||||
MAX_TIME=2
|
||||
|
||||
# Zuerst die URL auf git.nauheimtech.de versuchen
|
||||
curl -sf --connect-timeout $CONNECT_TIMEOUT --max-time $MAX_TIME \
|
||||
https://git.nauheimtech.de/StefanMewes/keyserver/raw/branch/main/$1/keys && exit 0
|
||||
URLS=(
|
||||
"https://git.nauheimtech.de/StefanMewes/keyserver/raw/branch/main/$1/keys"
|
||||
"https://raw.githubusercontent.com/Hobbabobba/keyserver/refs/heads/main/$1/keys"
|
||||
)
|
||||
|
||||
# Falls die erste URL fehlschlägt, die GitHub-URL versuchen
|
||||
curl -sf --connect-timeout $CONNECT_TIMEOUT --max-time $MAX_TIME \
|
||||
https://raw.githubusercontent.com/Hobbabobba/keyserver/refs/heads/main/$1/keys
|
||||
pids=()
|
||||
tmpfiles=()
|
||||
|
||||
# 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