#!/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 rsync -a /usr/config/modules/* /storage/.config/modules/ cp -f /usr/config/retroarch/retroarch-core-options.cfg /storage/.config/retroarch/retroarch-core-options.cfg 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 ### Sync rsync configs 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 -f /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 # Make sure PortMaster is in sync if [ ! -d "/storage/roms/ports/PortMaster" ] then mkdir -p /storage/roms/ports/PortMaster else rm -rf /storage/roms/ports/PortMaster mkdir -p /storage/roms/ports/PortMaster rm -f /storage/roms/ports/PortMaster.sh ||: fi rsync -a --delete /usr/share/PortMaster/* /storage/roms/ports/PortMaster/ chmod +x /storage/roms/ports/PortMaster -R # Ensure JelosAddOns is in sync if [ ! -d "/storage/roms/ports/JelosAddOns" ] then mkdir -p /storage/roms/ports/JelosAddOns else rm -rf /storage/roms/ports/JelosAddOns mkdir -p /storage/roms/ports/JelosAddOns rm -f /storage/roms/ports/JelosAddOns.sh ||: fi rsync -a /usr/share/JelosAddOns/* /storage/roms/ports/JelosAddOns/ chmod -R 755 /storage/roms/ports/JelosAddOns # Make sure ThemeMaster is in sync if [ ! -d "/storage/roms/ports/ThemeMaster" ] then mkdir -p /storage/roms/ports/ThemeMaster else rm -rf /storage/roms/ports/ThemeMaster mkdir -p /storage/roms/ports/ThemeMaster rm -f /storage/roms/ports/ThemeMaster.sh ||: fi rsync -a /usr/share/ThemeMaster/* /storage/roms/ports/ThemeMaster/ chmod -R 755 /storage/roms/ports/ThemeMaster # 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 # Disable integer scaling by default on Win600 if [[ "${HW_DEVICE}" =~ handheld ]] then sed -i "s#.integerscale=1#.integerscale=0#g" /storage/.config/system/configs/system.cfg fi # We don't want to use gl on the 552, switch it to glcore. if [[ "${HW_DEVICE}" =~ RG552 ]] then sed -i 's#video_driver = "gl"#video_driver = "glcore"#g' /storage/.config/retroarch/retroarch.cfg fi # If smb.conf doesn't exist in ~/.config, add it. if [ ! -e "/storage/.config/smb.conf" ] then cp -f /usr/config/smb.conf /storage/.config fi