#!/usr/bin/env bash
set -euo pipefail
SERVICE="danke-hmi.service"

echo
echo "=============================================="
echo " DANKE://HMI // PAIR NODE"
echo "=============================================="

if ! systemctl --user is-active --quiet "$SERVICE"; then
  echo "Service arrêté. Démarrage..."
  systemctl --user start "$SERVICE"
  sleep 1
fi

LOG="$(journalctl --user -u "$SERVICE" -n 120 --no-pager)"
CODE="$(printf '%s\n' "$LOG" | sed -n 's/.*CODE : \([0-9]\{6\}\).*/\1/p' | tail -1)"
URL="$(printf '%s\n' "$LOG" | sed -n 's/.*URL  : \(http[^ ]*\).*/\1/p' | tail -1)"

if [ -z "${CODE:-}" ]; then
  echo "Code introuvable. Redémarrage du service..."
  systemctl --user restart "$SERVICE"
  sleep 1
  LOG="$(journalctl --user -u "$SERVICE" -n 60 --no-pager)"
  CODE="$(printf '%s\n' "$LOG" | sed -n 's/.*CODE : \([0-9]\{6\}\).*/\1/p' | tail -1)"
  URL="$(printf '%s\n' "$LOG" | sed -n 's/.*URL  : \(http[^ ]*\).*/\1/p' | tail -1)"
fi

echo
echo " NODE : $(hostname)"
echo " URL  : ${URL:-inconnue}"
echo " CODE : ${CODE:-introuvable}"
echo
if command -v qrencode >/dev/null 2>&1 && [ -n "${URL:-}" ]; then
  echo "QR réseau :"
  qrencode -t ANSIUTF8 "$URL"
  echo
fi
echo "=============================================="
