RetroDECK/global.sh

76 lines
2.5 KiB
Bash
Raw Normal View History

2022-06-09 08:25:20 +00:00
#!/bin/bash
# This file is containing some global function needed for the script such as the config file tools
2022-09-06 13:24:36 +00:00
# Static variables
rd_conf="/var/config/retrodeck/retrodeck.cfg" # RetroDECK config file path
emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
lockfile="/var/config/retrodeck/.lock" # where the lockfile is located
sdcard="/run/media/mmcblk0p1" # Steam Deck SD default path
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem)
2022-09-06 12:46:59 +00:00
2022-09-06 13:24:36 +00:00
# If there is no config file I initalize the file with the the default values
2022-09-17 15:17:27 +00:00
if [ ! -f "$rd_conf" ]
2022-09-06 12:46:59 +00:00
then
2022-09-06 13:24:36 +00:00
echo "RetroDECK config file not found in $rd_conf"
echo "Initializing"
echo "#!/bin/bash" >> $rd_conf
version="$hard_version" # if we are here means that the we are in a new installation, so the version is valorized with the hardcoded one
2022-09-06 12:46:59 +00:00
rdhome="$HOME/retrodeck" # the retrodeck home, aka ~/retrodeck
2022-09-06 13:24:36 +00:00
roms_folder="$rdhome/roms" # the default roms folder path
2022-09-06 12:46:59 +00:00
media_folder="$HOME/retrodeck/downloaded_media" # the media folder, where all the scraped data is downloaded into
themes_folder="$HOME/retrodeck/themes" # the themes folder
2022-09-06 13:24:36 +00:00
# writing the needed variables in the config file
conf_write
# If the config file is existing i just read the variables (source it)
else
echo "Found RetroDECK config file in $rd_conf"
echo "Loading it"
2022-09-17 15:17:27 +00:00
source "$rd_conf"
2022-09-06 13:24:36 +00:00
fi
2022-06-09 08:25:20 +00:00
conf_write() {
# writes the variables in the retrodeck config file
echo "DEBUG: printing the config file content before writing it:"
2022-09-17 15:17:27 +00:00
cat "$rd_conf"
echo ""
2022-07-25 19:01:45 +00:00
echo "Writing the config file: $rd_conf"
2022-07-23 18:19:03 +00:00
# TODO: this can be optimized with a while and a list of variables to check
2022-07-23 18:19:03 +00:00
if [ ! -z "$version" ] #if the variable is not null then I update it
then
2022-09-17 15:17:27 +00:00
sed -i "s%version=.*%version=$version%" "$rd_conf"
fi
2022-07-23 18:19:03 +00:00
if [ ! -z "$rdhome" ]
then
2022-09-17 15:17:27 +00:00
sed -i "s%rdhome=.*%rdhome=$rdhome%" "$rd_conf"
fi
2022-07-23 18:19:03 +00:00
if [ ! -z "$roms_folder" ]
then
2022-09-17 15:17:27 +00:00
sed -i "s%roms_folder=.*%roms_folder=$roms_folder%" "$rd_conf"
fi
if [ ! -z "$media_folder" ]
then
2022-09-17 15:17:27 +00:00
sed -i "s%media_folder=.*%media_folder=$media_folder%" "$rd_conf"
fi
if [ ! -z "$themes_folder" ]
then
2022-09-17 15:17:27 +00:00
sed -i "s%themes_folder=.*%themes_folder=$themes_folder%" "$rd_conf"
fi
echo "DEBUG: New contents:"
2022-09-17 15:17:27 +00:00
cat "$rd_conf"
echo ""
2022-06-09 08:25:20 +00:00
}