synops/scripts/run-tasks.sh
vegard bf2d833410 Legg til run-tasks.sh: sekvensiell runner til ferdig/blokkert
Kjører oppgaver i loop med pause mellom. Stopper når alt er gjort,
blokkert, eller trenger avklaring fra Vegard.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 11:46:15 +01:00

62 lines
1.7 KiB
Bash
Executable file

#!/usr/bin/env bash
# Kjører oppgaver sekvensielt til ingen flere er tilgjengelige.
# Venter mellom sesjoner. Stopper når alt er gjort, blokkert, eller trenger avklaring.
#
# Bruk:
# ./scripts/run-tasks.sh # kjør til ferdig/blokkert
# ./scripts/run-tasks.sh --interval 60 # 60 sek mellom oppgaver (default: 30)
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
INTERVAL=30
while [[ $# -gt 0 ]]; do
case $1 in
--interval) INTERVAL=$2; shift 2 ;;
*) echo "Ukjent flagg: $1"; exit 1 ;;
esac
done
cd "$ROOT"
completed=0
while true; do
# Sjekk om det finnes noe å gjøre
dry_output=$(./scripts/run-next-task.sh --dry 2>&1)
if echo "$dry_output" | grep -q "Alle oppgaver er gjort"; then
echo ""
echo "=== Alle oppgaver er gjort! ($completed fullført i denne kjøringen) ==="
./scripts/run-next-task.sh --status
break
fi
if echo "$dry_output" | grep -q "Ingen tilgjengelige"; then
echo ""
echo "=== Ingen tilgjengelige oppgaver. ($completed fullført i denne kjøringen) ==="
echo "Gjenstående oppgaver er blokkert, har åpne spørsmål, eller venter på pågående arbeid."
echo ""
./scripts/run-next-task.sh --status
break
fi
echo "$dry_output"
echo ""
# Kjør oppgaven
./scripts/run-next-task.sh
exit_code=$?
if [[ $exit_code -eq 0 ]]; then
((completed++))
echo ""
echo "--- Oppgave ferdig (#$completed). Neste om ${INTERVAL}s (Ctrl-C for å stoppe) ---"
echo ""
sleep "$INTERVAL"
else
echo ""
echo "--- Sesjon feilet (exit $exit_code). Stopper. ---"
./scripts/run-next-task.sh --status
break
fi
done