#!/bin/bash # SPDX-License-Identifier: Apache-2.0 # Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius) . /etc/profile ### This script contains items that we only want to execute after a JELOS upgrade, ### or after a fresh installation. ### Rebuild the library cache rm -f /storage/.cache/ld.so.cache ldconfig -X ### Sync configurations if [ -d "/storage/.config/system/configs" ] then EXCLUDE="--exclude=configs" fi rsync -a --delete ${EXCLUDE} /usr/config/system/ /storage/.config/system/ rsync -a --ignore-existing /usr/config/game /storage/.config/ rsync -a /usr/config/modules /storage/.config/ if [ ! -L "/storage/.config/emulationstation/resources/logo.png" ] then rm -f /storage/.config/emulationstation/resources/logo.png ||: ln -sf /usr/config/splash/splash.png /storage/.config/emulationstation/resources/logo.png fi cp -f /usr/config/modules/gamelist.xml /storage/.config/modules cp -f /usr/config/retroarch/retroarch-core-options.cfg /storage/.config/retroarch/retroarch-core-options.cfg rm -rf /storage/roms/ports/JelosAddOns* cp -r /usr/share/JelosAddOns /storage/roms/ports/ mv /storage/roms/ports/JelosAddOns/JelosAddOns.sh /storage/roms/ports/JelosAddOns.sh chmod +x /storage/roms/ports/JelosAddOns.sh cd /usr/share/themes for theme in * do if [ ! -L /storage/.config/emulationstation/themes/${theme} ] && \ [ ! -e /storage/.config/emulationstation/themes/${theme} ] then ln -s /usr/share/themes/${theme} /storage/.config/emulationstation/themes fi done cd - ### Apply developer ssh keys if they exist if [ -e /usr/config/ssh/authorized_keys ] then cp /usr/config/ssh/authorized_keys /storage/.ssh fi rsync --ignore-existing /usr/config/rsync-rules.conf /storage/.config/ rsync --ignore-existing /usr/config/rsync.conf /storage/.config/ ### Replace es_systems and es_features with links to manage them for es_cfg in es_features.cfg es_systems.cfg do if [ -e "/storage/.config/emulationstation/${es_cfg}" ] then mv /storage/.config/emulationstation/${es_cfg} /storage/.config/emulationstation/last_${es_cfg} fi ln -s /usr/config/emulationstation/${es_cfg} /storage/.config/emulationstation/${es_cfg} done # Default modules need to be updated to use the new stop/start ui function. rsync -av /usr/config/modules/* /storage/.config/modules/ # Swap es_input back to a writeable file so external controller configuration works properly. if [ -L "/storage/.config/emulationstation/es_input.cfg" ] then rm -f /storage/.config/emulationstation/es_input.cfg cp -f /usr/config/emulationstation/es_input.cfg /storage/.config/emulationstation/es_input.cfg fi