#!/usr/bin/env bash
set -euo pipefail

ROOT="/var/www/vps2.happyuser.info/top/callme_overnight_20260601"
PY="/home/simple_user/.pyenv/versions/3.8.18/bin/python3.8"
LOG="$ROOT/output/coordinator/wake_loop.log"
STOP="$ROOT/STOP_COORDINATOR"
mkdir -p "$ROOT/output/coordinator"

echo "Callme coordinator loop starting at $(date -u +%Y-%m-%dT%H:%M:%SZ)" | tee -a "$LOG"
echo "Wake interval: 1800 seconds" | tee -a "$LOG"

while true; do
  if [ -f "$STOP" ]; then
    echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) STOP_COORDINATOR present; exiting." | tee -a "$LOG"
    exit 0
  fi

  (
    flock -n 9 || exit 0
    echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) wake" | tee -a "$LOG"
    if command -v taskset >/dev/null 2>&1; then
      RUNNER=(taskset -c 0)
    else
      RUNNER=()
    fi
    if command -v ionice >/dev/null 2>&1; then
      IO=(ionice -c2 -n7)
    else
      IO=()
    fi
    "${RUNNER[@]}" "${IO[@]}" nice -n 15 "$PY" "$ROOT/callme_pipeline_coordinator.py" 2>&1 | tee -a "$LOG"
  ) 9>"$ROOT/output/coordinator/wake.lock"

  sleep 1800
done
