Initial: Mesh-Configs vom 03.09.2026 01:23
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
# Master-Task-Handler: verifiziert & validiert Tasks im Mesh-Share automatisch.
|
||||
# Läuft via Cron: */5 * * * * /path/scripts/master-task-handler.sh
|
||||
# Quelle /srv/work — Status=Ordnermodell (todo/inProgress/finished/bugged/completed)
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
WORK="/srv/work"
|
||||
TODO="$WORK/todo"
|
||||
INPROG="$WORK/inProgress"
|
||||
FIN="$WORK/finished"
|
||||
BUG="$WORK/bugged"
|
||||
COMP="$WORK/completed"
|
||||
LOCK_TIMEOUT=15 # Minuten
|
||||
STALE_TIMEOUT=30 # Minuten
|
||||
|
||||
mkdir -p "$TODO" "$INPROG" "$FIN" "$BUG" "$COMP"
|
||||
|
||||
# 1) Verwaiste Locks bereinigen (>15 min)
|
||||
find "$INPROG" -name "*.lock" -mmin +$LOCK_TIMEOUT -delete 2>/dev/null || true
|
||||
|
||||
# 2) Stale Dateien in inProgress (ohne Lock, >30 min) -> zurück nach todo
|
||||
for f in "$INPROG"/*.md "$INPROG"/*.json; do
|
||||
[ -f "$f" ] || continue
|
||||
[ -f "$f.lock" ] && continue
|
||||
if [ "$(find "$f" -mmin +$STALE_TIMEOUT 2>/dev/null | wc -l)" -gt 0 ]; then
|
||||
mv "$f" "$TODO/" 2>/dev/null && echo "[$(date)] stale -> todo: $f"
|
||||
fi
|
||||
done
|
||||
|
||||
# 3) finished/ validieren (Frontmatter + # Ergebnis)
|
||||
for f in "$FIN"/*.md; do
|
||||
[ -f "$f" ] || continue
|
||||
if ! head -20 "$f" | grep -q "^---$" || ! grep -q "^# Ergebnis" "$f"; then
|
||||
mv "$f" "$BUG/" 2>/dev/null && echo "[$(date)] formatfehler -> bugged: $f"
|
||||
continue
|
||||
fi
|
||||
# Optional: Artefakt in completed/ spiegeln
|
||||
# cp "$f" "$COMP/$(basename "$f")"
|
||||
done
|
||||
|
||||
# 4) bugged/ Retry-Buchhaltung (YAML: retries)
|
||||
for f in "$BUG"/*.md; do
|
||||
[ -f "$f" ] || continue
|
||||
retries=$(grep -m1 "^retries:" "$f" 2>/dev/null | awk '{print $2}' || echo 0)
|
||||
retries=${retries:-0}
|
||||
if [ "$retries" -gt 0 ]; then
|
||||
new=$((retries - 1))
|
||||
sed -i "s/^retries: .*/retries: $new/" "$f"
|
||||
mv "$f" "$TODO/" 2>/dev/null && echo "[$(date)] retry($new) -> todo: $f"
|
||||
else
|
||||
echo "[$(date)] bleibt in bugged (retries=0): $f"
|
||||
fi
|
||||
done
|
||||
Reference in New Issue
Block a user