- scripts/loop-guard.sh — atomic claim with 30-min staleness overtake, appends NDJSON event to .loop-logs/<lang>.ndjson. Exit 0 = go ahead, exit 1 = another run is live, skip. - scripts/loop-release.sh — clear lock, log release with exit status. Intended for 7 per-language /schedule routines firing every 15 minutes. Lock detects overlap so tight cadences are safe; stale lock (>30 min) overtaken automatically if an agent dies mid-run.
14 lines
383 B
Bash
Executable File
14 lines
383 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
LANG=${1:?usage: loop-release.sh <lang>}
|
|
STATUS=${2:-done}
|
|
ROOT=$(cd "$(dirname "$0")/.." && pwd)
|
|
cd "$ROOT"
|
|
LOCK=".loop-locks/$LANG.claim"
|
|
LOG=".loop-logs/$LANG.ndjson"
|
|
ISO=$(date -Iseconds)
|
|
rm -f "$LOCK"
|
|
printf '{"ts":"%s","lang":"%s","status":"released","exit":"%s"}\n' "$ISO" "$LANG" "$STATUS" >> "$LOG"
|
|
echo "OK: $LANG released ($STATUS)"
|