multi-watch.sh hinzugefügt
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 1s

This commit is contained in:
2026-02-06 16:35:00 +00:00
parent 2fc5d70dad
commit bd51d08911

54
multi-watch.sh Normal file
View File

@@ -0,0 +1,54 @@
#!/bin/bash
# Datei für den Status
STATE_FILE="watch_state.json"
# Liste der zu prüfenden Quellen (Typ|Name|Zusatz)
# Formate:
# DOCKER|user/repo|tag
# GITHUB|user/repo|branch
TARGETS=(
"DOCKER|library/ubuntu|latest"
"DOCKER|grafana/grafana|9.5.0"
"GITHUB|docker/cli|master"
"GITHUB|torvalds/linux|master"
)
# Falls jq nicht installiert ist
if ! command -v jq &> /dev/null; then echo "Bitte 'jq' installieren!"; exit 1; fi
# Initialisiere State-Datei falls nicht vorhanden
if [ ! -f "$STATE_FILE" ]; then echo "{}" > "$STATE_FILE"; fi
for entry in "${TARGETS[@]}"; do
IFS="|" read -r TYPE REPO EXTRA <<< "$entry"
KEY="${TYPE}_${REPO//[\/\.]/_}_${EXTRA}"
OLD_VAL=$(jq -r ".${KEY} // empty" "$STATE_FILE")
NEW_VAL=""
if [ "$TYPE" == "DOCKER" ]; then
# Holt das letzte Update-Datum vom Docker Hub
NEW_VAL=$(curl -s "https://hub.docker.com/v2/repositories/${REPO}/tags/${EXTRA}" | jq -r '.last_updated // empty')
elif [ "$TYPE" == "GITHUB" ]; then
# Holt den neuesten Commit-SHA vom GitHub Branch
NEW_VAL=$(curl -s "https://api.github.com/repos/${REPO}/branches/${EXTRA}" | jq -r '.commit.sha // empty')
fi
if [ -z "$NEW_VAL" ] || [ "$NEW_VAL" == "null" ]; then
echo "Fehler: Konnte Daten für $REPO ($EXTRA) nicht abrufen."
continue
fi
if [ -n "$OLD_VAL" ] && [ "$OLD_VAL" != "$NEW_VAL" ]; then
echo "🔔 UPDATE GEFUNDEN: $REPO ($EXTRA)"
echo " Alt: $OLD_VAL"
echo " Neu: $NEW_VAL"
# HIER: Befehl für E-Mail oder Push-Dienst einfügen
else
echo "$REPO ($EXTRA) ist aktuell."
fi
# Status aktualisieren
TEMP_JSON=$(jq ".${KEY} = \"$NEW_VAL\"" "$STATE_FILE")
echo "$TEMP_JSON" > "$STATE_FILE"
done