#!/bin/bash

set -u

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
ENV_FILE="$PROJECT_DIR/.env"

LOCK_FILE="/tmp/hh_analyze.lock"

if [ ! -f "$ENV_FILE" ]; then
  echo "$(date '+%F %T') [analyze] ERROR: .env introuvable: $ENV_FILE"
  exit 1
fi

set -a
source "$ENV_FILE"
set +a

LOG_DIR="${LOG_DIR:-$PROJECT_DIR/logs}"

mkdir -p "$LOG_DIR"

if [ -f "$LOCK_FILE" ]; then
  echo "$(date '+%F %T') [analyze] lock present, skip" >> "$LOG_DIR/analyze.log"
  exit 0
fi

trap 'rm -f "$LOCK_FILE"' EXIT
touch "$LOCK_FILE"

cd "$PROJECT_DIR" || exit 1

echo "$(date '+%F %T') [analyze] start" >> "$LOG_DIR/analyze.log"
"$PYTHON_BIN" -m app.workflow.analyze >> "$LOG_DIR/analyze.log" 2>&1
EXIT_CODE=$?
echo "$(date '+%F %T') [analyze] end exit_code=$EXIT_CODE" >> "$LOG_DIR/analyze.log"

exit $EXIT_CODE