initial commit
This commit is contained in:
Executable
+54
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Összeveti a scripts/repos.list klón listát a Gitea szerver tartalmával
|
||||
# (tea repo list --output json).
|
||||
#
|
||||
# - HIÁNYZIK: a szerveren létezik, de nincs a klón listában és a
|
||||
# repos.ignore-ban sem
|
||||
# - FELESLEG: a listában Gitea repóként szerepel, de a szerveren nincs
|
||||
#
|
||||
# Kilépési kód: 0, ha minden stimmel; 1, ha bármelyik listában van találat.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
LIST="$SCRIPT_DIR/repos.list"
|
||||
IGNORE="$SCRIPT_DIR/repos.ignore"
|
||||
GITEA_HOST="git.teletypegames.org"
|
||||
|
||||
command -v tea >/dev/null 2>&1 || {
|
||||
echo "HIBA: nincs tea CLI. Futtasd: make tea" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Szerveren lévő repók: owner/name
|
||||
server=$(tea repo list --output json --limit 1000 | jq -r '.[] | .owner + "/" + .name' | sort)
|
||||
|
||||
# A klón listában szereplő Gitea repók: owner/name a clone URL-ből
|
||||
listed=$(sed -nE "s#^[^|#]+\|ssh://git@${GITEA_HOST}:[0-9]+/(.+)\$#\1#p" "$LIST" | sed 's/\.git$//' | sort)
|
||||
|
||||
# Szándékosan kihagyott repók
|
||||
ignored=$(sed -e 's/#.*//' -e '/^[[:space:]]*$/d' "$IGNORE" 2>/dev/null | sort || true)
|
||||
|
||||
missing=$(comm -23 <(echo "$server") <(sort -u <(echo "$listed") <(echo "$ignored")))
|
||||
stale=$(comm -13 <(echo "$server") <(echo "$listed"))
|
||||
|
||||
status=0
|
||||
|
||||
if [ -n "$missing" ]; then
|
||||
echo "HIÁNYZIK a klón listából (a szerveren létezik):"
|
||||
echo "$missing" | sed 's/^/ - /'
|
||||
status=1
|
||||
fi
|
||||
|
||||
if [ -n "$stale" ]; then
|
||||
echo "FELESLEG a klón listában (a szerveren nincs):"
|
||||
echo "$stale" | sed 's/^/ - /'
|
||||
status=1
|
||||
fi
|
||||
|
||||
if [ "$status" -eq 0 ]; then
|
||||
echo "OK: a klón lista lefedi a szerver mind a(z) $(echo "$server" | wc -l | tr -d ' ') repóját ($(echo "$ignored" | grep -c . || true) szándékosan kihagyva)."
|
||||
fi
|
||||
|
||||
exit "$status"
|
||||
Reference in New Issue
Block a user