#!/bin/bash

installLibrePortalImageWebUI()
{
  isHeader "LibrePortal WebUI Image"

  isNotice "Building the LibrePortal WebUI Docker image..."

  # The copy below writes into the dockerinstall-owned containers root. On a
  # fresh install the general traversal/ownership reconcile runs LATER, so at
  # this point the system root is still 750 (untraversable by the container user)
  # and the containers root may still be manager-owned — the copy would fail.
  # Establish traversal + containers-root ownership FIRST.
  fixFolderPermissions

  local result=$(copyFolder "$install_containers_dir/libreportal" "$containers_dir" "$sudo_user_name")
  checkSuccess "Copy the LibrePortal to the containers folder"

  reconcileWebuiDirOwnership

  # copyFolder just restored the TEMPLATE docker-compose.yml, which carries raw
  # #LIBREPORTAL|TAG|VALUE placeholders. On a fresh install the following
  # dockerInstallApp (installLibrePortalAppWebUI) substitutes them; but on a
  # REBUILD/update (libreportal already installed — this also runs via the WebUI
  # deploy) nothing else does, leaving the at-rest compose unparseable by a plain
  # `docker compose` (e.g. "invalid boolean: HEALTHCHECK_DATA"). Re-apply the tag
  # processors here — the same self-heal up_app.sh uses — so the runtime compose
  # is always fully substituted at rest, not just when started via the CLI.
  if declare -F dockerConfigSetupFileWithData >/dev/null 2>&1 \
     && [[ "$(dockerCheckAppInstalled libreportal docker)" != "not_installed" ]]; then
    initializeAppVariables libreportal >/dev/null 2>&1 || true
    dockerConfigSetupFileWithData libreportal >/dev/null 2>&1 || true
    checkSuccess "Re-applied LibrePortal WebUI compose tag substitutions"
  fi

  isNotice "Building libreportal-service image, this may take a while..."
  local result=$(runFileOp docker build -t libreportal-service -f $containers_dir/libreportal/Dockerfile $containers_dir/libreportal >/dev/null 2>&1)
  checkSuccess "Built LibrePortal WebUI Docker image"
}