#!/bin/sh
# ============================================================================
# cont-init.d — Kodi : serveur web + auth pour le pilotage JSON-RPC.
# Idempotent, exécuté à chaque démarrage AVANT Kodi :
# - si guisettings.xml absent : squelette minimal (Kodi complète au 1er run) ;
# - si présent : force les 5 réglages services.webserver* (sed).
# ============================================================================
set -eu

KODI_USER="${KODI_USER:-kodi}"
KODI_PASSWORD="${KODI_PASSWORD:-kodi}"
KODI_PORT="${KODI_PORT:-8080}"
UDATA="/config/.kodi/userdata"
GUI="${UDATA}/guisettings.xml"

mkdir -p "${UDATA}"

if [ ! -f "${GUI}" ]; then
  cat > "${GUI}" <<EOF
<settings version="2">
    <section id="services">
        <category id="general">
            <group id="0">
                <setting id="services.webserver">true</setting>
                <setting id="services.webserverport">${KODI_PORT}</setting>
                <setting id="services.webserverusername">${KODI_USER}</setting>
                <setting id="services.webserverpassword">${KODI_PASSWORD}</setting>
                <setting id="services.zeroconf">false</setting>
                <setting id="addons.unknownsources">true</setting>
            </group>
        </category>
    </section>
</settings>
EOF
  echo "[kodi-init] guisettings.xml créé (webserver :${KODI_PORT})."
fi

set_setting() {
  _id="$1"; _val="$2"
  if grep -q "id=\"${_id}\"" "${GUI}"; then
    sed -i "s|<setting id=\"${_id}\"[^>]*>.*</setting>|<setting id=\"${_id}\">${_val}</setting>|" "${GUI}"
  else
    sed -i "s|</settings>|    <setting id=\"${_id}\">${_val}</setting>\n</settings>|" "${GUI}"
  fi
}

set_setting "services.webserver" "true"
set_setting "services.webserverport" "${KODI_PORT}"
set_setting "services.webserverusername" "${KODI_USER}"
set_setting "services.webserverpassword" "${KODI_PASSWORD}"
set_setting "services.zeroconf" "false"
# Sources inconnues (install depuis zip, comme la démo) + seed des addons
# préinstallés si le volume est vide (1er démarrage avec volume nommé).
set_setting "addons.unknownsources" "true"

if [ ! -d "/config/.kodi/addons/plugin.video.vstream" ] && [ -d "/opt/kodi-seed" ]; then
  cp -r /opt/kodi-seed/. /config/.kodi/addons/
  echo "[kodi-init] addons préinstallés restaurés depuis /opt/kodi-seed."
fi

echo "[kodi-init] webserver forcé (port ${KODI_PORT})."
