distribution/packages/sysutils/systemd/scripts/userconfig-setup
fewtarius 9dd0d3270d
Fix multiple startup bugs
* Revert enabling blkid in e2fsprogs, this conflicts with the busybox binary and causes partitions to fail to resize on first boot.
  * Optimize startup order and apply a guard to set_settings to ensure the system configuration exists before writing to it.  This resolves black screen issues that sometimes occur during the initial boot.
2024-01-16 12:38:18 +00:00

65 lines
2.4 KiB
Bash
Executable file

#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
. /etc/profile.d/001-functions
if [ ! -e "/storage/.configured" ]
then
tocon "Initializing configuration..."
# Copy config files
rsync -a --ignore-existing --exclude={es_features.cfg,es_systems.cfg} /usr/config/* /storage/.config/ >/var/log/configure.log 2>&1
if [ -d "/usr/lib/autostart/quirks/platforms/${HW_DEVICE}/config" ]
then
rsync -a /usr/lib/autostart/quirks/platforms/"${HW_DEVICE}"/config/* /storage/.config/ >>/var/log/configure.log 2>&1
fi
if [ -d "/usr/lib/autostart/quirks/devices/${QUIRK_DEVICE}/config" ]
then
rsync -a /usr/lib/autostart/quirks/devices/"${QUIRK_DEVICE}"/config/* /storage/.config/ >>/var/log/configure.log 2>&1
fi
if [ -e "/usr/bin/emulationstation" ]
then
tocon "Installing themes..."
mkdir -p /storage/.config/emulationstation/themes >/dev/null
ln -s /usr/share/themes/es-theme-art-book-next /storage/.config/emulationstation/themes/system-theme >/dev/null 2>&1
### Link the game controller database so it is managed with OS updates.
tocon "Configuring controller database..."
rm -f /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt >/dev/null 2>&1
ln -s /usr/config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt >/dev/null 2>&1
### Remove and link es configs so they are managed with OS updates.
for es_cfg in es_features.cfg es_systems.cfg
do
ln -s /usr/config/emulationstation/${es_cfg} /storage/.config/emulationstation/${es_cfg} >/dev/null 2>&1
done
fi
mkdir -p /storage/.config/modprobe.d >/dev/null 2>&1
touch /storage/.configured >/dev/null 2>&1
sync
fi
if [ ! -e "/storage/.cache/ld.so.cache" ]
then
tocon "Initializing library cache..."
### Create library cache
ldconfig -X >/dev/null 2>&1
fi
if [ ! -d "/storage/.config/locale" ]
then
tocon "Initializing language support..."
rsync -a --delete /usr/config/locale/* /storage/.config/locale/ >/dev/null 2>&1
if [ ! -L "/storage/.config/emulationstation/locale" ] &&
[ -e "/usr/bin/emulationstation" ]
then
rm -rf /storage/.config/emulationstation/locale >/dev/null 2>&1 ||:
ln -sf /usr/share/locale /storage/.config/emulationstation/locale
fi
fi