145 lines
4.6 KiB
Bash
145 lines
4.6 KiB
Bash
#!/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 "BTN_VOLBRIGHT_HOTKEY=999" >>/storage/.config/jslisten_hotkeys
|
|
fi
|