#!/bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) . /etc/profile LOG="/var/log/boot.log" ### This script contains items that we only want to execute after a JELOS upgrade, ### or after a fresh installation. ### Items in this block should always run after updates. ################################################################################ echo "Rebuild library cache..." >>${LOG} tocon "Rebuilding library cache..." ### Rebuild the library cache rm -f /storage/.cache/ld.so.cache ldconfig -X echo "Sync configuration files..." >>${LOG} tocon "Re-sync configuration files..." ### Sync configurations if [ -d "/storage/.config/system/configs" ] then EXCLUDE="--exclude=configs" fi ### Remove and link es configs so they are managed with OS updates. for es_cfg in es_features.cfg es_systems.cfg do mv /storage/.config/emulationstation/${es_cfg} /storage/.config/emulationstation/last_${es_cfg} >/dev/null 2>&1 ln -s /usr/config/emulationstation/${es_cfg} /storage/.config/emulationstation/${es_cfg} >/dev/null 2>&1 done 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 [ -f "/storage/.config/emulationstation/resources/logo.png" ] then rm -f /storage/.config/emulationstation/resources/logo.png fi echo "Sync modules..." >>${LOG} tocon "Update tool modules..." rsync -a /usr/config/modules/* /storage/.config/modules/ cp -f /usr/config/retroarch/retroarch-core-options.cfg /storage/.config/retroarch/retroarch-core-options.cfg ### Apply developer ssh keys if they exist echo "Apply dev keys if available..." >>${LOG} if [ -e /usr/config/ssh/authorized_keys ] then tocon "Update developer keys..." cp /usr/config/ssh/authorized_keys /storage/.ssh fi ### Sync rsync configs echo "Update rsync configuration files..." >>${LOG} rsync --ignore-existing /usr/config/rsync-rules.conf /storage/.config/ rsync --ignore-existing /usr/config/rsync.conf /storage/.config/ ### Sync locale data tocon "Re-sync locale data..." rsync -a --delete /usr/config/locale/* /storage/.config/locale/ >>/var/log/configure.log 2>&1 rm -rf /storage/.config/emulationstation/locale >>/var/log/configure.log 2>&1 ||: ln -sf /usr/share/locale /storage/.config/emulationstation/locale >>/var/log/configure.log 2>&1 ||: ### Add items below this line that are safe to remove after a period of time. ################################################################################ ### 20231114 - Update hosts.conf grep "127.0.0.1" /storage/.config/hosts.conf >/dev/null 2>&1 || cp /usr/config/hosts.conf /storage/.config/ ### 20231127 - Migrate games to overlayfs (updated 20231203) NULL=$(cat /proc/mounts | grep -v -e "/storage/roms" 2>/dev/null | grep ${1}) if [ ! "$?" = 0 ] then umount /storage/roms fi GAMECOUNT=$(find /storage/roms -type f | wc -l) if [ "${GAMECOUNT}" -gt 20 ] && \ [ ! -e "/storage/.migrated_games" ] then echo "Migrating games to overlayfs" >>${LOG} tocon "Migrate games to new storage model..." if [ -d "/storage/games-internal" ] then echo "Backing up games-internal" >>${LOG} mv /storage/games-internal /storage/games-internal.backup fi mv /storage/roms /storage/games-internal mkdir /storage/roms touch /storage/.migrated_games else echo "Game weight too low (${GAMECOUNT}) or content already migrated." >>${LOG} fi ### Migration part 2 if [ ! -e "/storage/.migrated_games2" ] then for GAMES in /storage/games-internal /storage/games-external do if [ ! -d "${GAMES}/roms" ] then mkdir -p "${GAMES}/roms" 2>/dev/null fi tocon "Migrate games to new storage model..." mv "${GAMES}"/* "${GAMES}/roms/" done touch /storage/.migrated_games2 fi ### 20231129 - Don't default to performance. EPP=$(get_setting system.power.epp) if [ -z "${EPP}" ] || \ [ "${EPP}" = "performance" ] then EPP="balance_performance" set_setting system.power.epp ${EPP} fi ### 20231130 - Replace smb.conf for new overlay mechanism. cp -f /usr/config/smb.conf /storage/.config ### 20231202 - Remove stale profile bits if they exist. for FILE in 001-deviceconfig 99-mixer do rm -f /storage/.config/profile.d/${FILE} 2>/dev/null done ### 20231203 - Disable merged storage by default. MERGED_STORAGE=$(get_setting system.merged.storage) if [ -z "${MERGED_STORAGE}" ] then set_setting system.merged.storage 0 fi systemctl restart jelos-automount ### 20240111 - Add new jslisten hotkey if [ -e "/storage/.config/jslisten_hotkeys" ] then grep BTN_VOLBRIGHT_HOTKEY /storage/.config/jslisten_hotkeys || echo -e "\nBTN_VOLBRIGHT_HOTKEY=999" >>/storage/.config/jslisten_hotkeys fi