#!/bin/bash

##############################################################################################################
#                                                                                                            #
# A mathsplain_pdf_collection modulhoz kötődő segéd shell script                                             #
# Át kell másolni bárhová, lehetőleg a Drupal-on kívülre, ahonnan crontab-ból hívható                        #
#                                                                                                            #
# Környezetenként változó beállítások                                                                        #
#                                                                                                            #
# Drupal root könyvtár (abszolút útvonal kell)
DRUPAL_ROOT="/home/maths/public_html/live/current"
# URI (a global $language miatt kell)
URI=https://www.mateking.hu
# Lock fájl helye
LOCKFILE="/home/maths/public_html/live/mateking_pqr.lock"
# Log fájl helye
LOGFILE="/home/maths/public_html/live/mateking_pqr.log"
# Drush helye
DRUSH="/usr/local/bin/drush"
# Path to python script relative to drupal root
PYTHON_SCRIPT="sites/all/modules/custom/mathsplain_pdf_collection/scripts/merge_pdfs_with_toc.py"
# PHP
PHP=ea-php74
##############################################################################################################

# Site könyvtár (pl. sites/mp)
SITE_ALIAS=mp

set -euo pipefail

# PATH beállítás, hogy a wkhtmltopdf elérhető legyen
export PATH=/usr/local/bin:/usr/bin:/bin

# Clear problematic bash function exports that can cause "which" errors
unset -f which 2>/dev/null || true

(
  # Lock próbálkozás
  if ! flock -n 200; then
    echo "$(date '+%F %T') – már fut (lock: $LOCKFILE)" | tee -a "$LOGFILE"
    exit 1
  fi

  # Innen minden logba kerül
  {
    echo
    echo "============================================================"
    echo "= $(date '+%F %T') – Script indul"
    echo "============================================================"

    # Drush parancs
    #ea-php74 -d memory_limit=1024M -d max_execution_time=1000 /usr/local/bin/drush -r "$DRUPAL_ROOT" -l "$URI" pqr 1 -v
    #RESULT_DATA=$(ea-php74 -d memory_limit=1024M -d max_execution_time=1000 /usr/local/bin/drush -r "$DRUPAL_ROOT" -l "$URI" pqr 1 --quiet)

    # ANSI színek kikapcsolása környezeti változóval
    TERM=dumb RESULT_DATA=$("$PHP" -d memory_limit=1024M "$DRUSH" -r "$DRUPAL_ROOT" -l "$URI" pqr 1 --quiet)

    EXIT_CODE=$?
    echo "$(date '+%F %T') – Drush lefutott (exit code: $EXIT_CODE, result data: $RESULT_DATA)"

    # Csak akkor futtasd a Python-t, ha a Drush sikeres volt
    if [ $EXIT_CODE -eq 0 ] && [ -n "$RESULT_DATA" ]; then
      echo "$(date '+%F %T') – Python script futtatása."

      # Fontos: idézőjelezd, mert az útvonal tartalmazhat szóközt
      python3 "$DRUPAL_ROOT/$PYTHON_SCRIPT" "$RESULT_DATA"
      PY_EXIT=$?

      echo "$(date '+%F %T') – Python script vége (exit code: $PY_EXIT)"
    else
      echo "$(date '+%F %T') – A Drush parancs hibásan futott vagy üres kimenetet adott."
    fi
    echo "$(date '+%F %T') – Script vége (exit code: $EXIT_CODE)"
    echo
  } >> "$LOGFILE" 2>&1

) 200>"$LOCKFILE"
