87 lines
3.5 KiB
Bash
87 lines
3.5 KiB
Bash
#!/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
|
|
|
|
### Update add-ons and themes
|
|
wait < <(jobs -p)
|
|
|
|
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
|
|
|
|
### Safe to make changes below this line.
|
|
|
|
# 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
|
|
|
|
# Re-introduce overlayfs for retroarch.
|
|
sed -i 's#^overlay_directory.*$#overlay_directory = "/tmp/overlays"#g' /storage/.config/retroarch/retroarch.cfg
|
|
sed -i 's#^video_shader_dir.*$#video_shader_dir = "/tmp/shaders"#g' /storage/.config/retroarch/retroarch.cfg
|
|
sed -i 's#^joypad_autoconfig_dir.*$#joypad_autoconfig_dir = "/tmp/joypads"#g' /storage/.config/retroarch/retroarch.cfg
|
|
sed -i 's#^cheat_database_path.*$#cheat_database_path = "/tmp/database/cht"#g' /storage/.config/retroarch/retroarch.cfg
|
|
sed -i 's#^content_database_path.*$#content_database_path = "/tmp/database/rdb"#g' /storage/.config/retroarch/retroarch.cfg
|
|
sed -i 's#^assets_directory.*$#assets_directory = "/tmp/assets"#g' /storage/.config/retroarch/retroarch.cfg
|
|
sed -i 's#^libretro_directory.*$#libretro_directory = "/tmp/cores"#g' /storage/.config/retroarch/retroarch.cfg
|
|
sed -i 's#^libretro_info_path.*$#libretro_info_path = "/tmp/cores"#g' /storage/.config/retroarch/retroarch.cfg
|