#!/bin/bash

# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)

. /etc/profile.d/001-functions

if [ ! -e "/storage/.configured" ]
then
  #tocon "Initializing configuration..."
  # Copy config files
  rsync -a --ignore-existing --exclude={es_features.cfg,es_systems.cfg} /usr/config/* /storage/.config/ >/var/log/configure.log 2>&1

  if [ -d "/usr/lib/autostart/quirks/platforms/${HW_DEVICE}/config" ]
  then
    rsync -a /usr/lib/autostart/quirks/platforms/"${HW_DEVICE}"/config/* /storage/.config/ >>/var/log/configure.log 2>&1
  fi

  if [ -d "/usr/lib/autostart/quirks/devices/${QUIRK_DEVICE}/config" ]
  then
    rsync -a /usr/lib/autostart/quirks/devices/"${QUIRK_DEVICE}"/config/* /storage/.config/ >>/var/log/configure.log 2>&1
  fi

  if [ -e "/usr/bin/emulationstation" ]
  then
    #tocon "Installing themes..."
    mkdir -p /storage/.config/emulationstation/themes  >/dev/null
    ln -s /usr/share/themes/es-theme-art-book-next /storage/.config/emulationstation/themes/system-theme  >/dev/null 2>&1

    ### Link the game controller database so it is managed with OS updates.
    #tocon "Configuring controller database..."
    rm -f /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt  >/dev/null 2>&1
    ln -s /usr/config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt  >/dev/null 2>&1

    ### Remove and link es configs so they are managed with OS updates.
    for es_cfg in es_features.cfg es_systems.cfg
    do
      ln -s /usr/config/emulationstation/${es_cfg} /storage/.config/emulationstation/${es_cfg}  >/dev/null 2>&1
    done
  fi

  ### Link the ES splash to the distribution splash
  rm -f /storage/.config/emulationstation/resources/logo.png
  ln -sf /usr/config/splash/splash.png /storage/.config/emulationstation/resources/logo.png

  mkdir -p /storage/.config/modprobe.d  >/dev/null 2>&1
  touch /storage/.configured  >/dev/null 2>&1
  sync
fi

if [ ! -e "/storage/.cache/ld.so.cache" ]
then
  #tocon "Initializing library cache..."
  ### Create library cache
  ldconfig -X >/dev/null 2>&1
fi

if [ ! -d "/storage/.config/locale" ]
then
  #tocon "Initializing language support..."
  rsync -a --delete /usr/config/locale/* /storage/.config/locale/ >/dev/null 2>&1
  if [ ! -L "/storage/.config/emulationstation/locale" ] &&
     [ -e "/usr/bin/emulationstation" ]
  then
    rm -rf /storage/.config/emulationstation/locale >/dev/null 2>&1 ||:
    ln -sf /usr/share/locale /storage/.config/emulationstation/locale
  fi
fi
