Fix lots of issues with paths containing spaces in prepare_component

This commit is contained in:
icenine451 2025-03-26 16:51:17 -04:00
parent 3ae4eac4f9
commit aabbc41498

View file

@ -134,8 +134,8 @@ prepare_component() {
cp -fvr "$config/steam-rom-manager/manifests" "$srm_userdata" cp -fvr "$config/steam-rom-manager/manifests" "$srm_userdata"
log i "Updating steamDirectory and romDirectory lines in $srm_userdata/userSettings.json" log i "Updating steamDirectory and romDirectory lines in $srm_userdata/userSettings.json"
jq '.environmentVariables.steamDirectory = "'$HOME'/.steam/steam"' "$srm_userdata/userSettings.json" > "$srm_userdata/tmp.json" && mv -f "$srm_userdata/tmp.json" "$srm_userdata/userSettings.json" jq '.environmentVariables.steamDirectory = "'"$HOME"'/.steam/steam"' "$srm_userdata/userSettings.json" > "$srm_userdata/tmp.json" && mv -f "$srm_userdata/tmp.json" "$srm_userdata/userSettings.json"
jq '.environmentVariables.romsDirectory = "'$rdhome'/.sync"' "$srm_userdata/userSettings.json" > "$srm_userdata/tmp.json" && mv -f "$srm_userdata/tmp.json" "$srm_userdata/userSettings.json" jq '.environmentVariables.romsDirectory = "'"$rdhome"'/.sync"' "$srm_userdata/userSettings.json" > "$srm_userdata/tmp.json" && mv -f "$srm_userdata/tmp.json" "$srm_userdata/userSettings.json"
get_steam_user get_steam_user
fi fi
@ -200,14 +200,14 @@ prepare_component() {
log i "--------------------------------" log i "--------------------------------"
log i "Prepearing PPSSPP_LIBRETRO" log i "Prepearing PPSSPP_LIBRETRO"
log i "--------------------------------" log i "--------------------------------"
if [ -d $bios_folder/PPSSPP/flash0/font ] if [ -d "$bios_folder/PPSSPP/flash0/font" ]
then then
mv -fv $bios_folder/PPSSPP/flash0/font $bios_folder/PPSSPP/flash0/font.bak mv -fv "$bios_folder/PPSSPP/flash0/font" "$bios_folder/PPSSPP/flash0/font.bak"
fi fi
cp -rf "/app/retrodeck/extras/PPSSPP" "$bios_folder/PPSSPP" cp -rf "/app/retrodeck/extras/PPSSPP" "$bios_folder/PPSSPP"
if [ -d $bios_folder/PPSSPP/flash0/font.bak ] if [ -d "$bios_folder/PPSSPP/flash0/font.bak" ]
then then
mv -f $bios_folder/PPSSPP/flash0/font.bak $bios_folder/PPSSPP/flash0/font mv -f "$bios_folder/PPSSPP/flash0/font.bak" "$bios_folder/PPSSPP/flash0/font"
fi fi
# MSX / SVI / ColecoVision / SG-1000 # MSX / SVI / ColecoVision / SG-1000
@ -350,7 +350,9 @@ prepare_component() {
cp -fr "$config/cemu/"* /var/config/Cemu/ cp -fr "$config/cemu/"* /var/config/Cemu/
set_setting_value "$cemuconf" "mlc_path" "$bios_folder/cemu" "cemu" set_setting_value "$cemuconf" "mlc_path" "$bios_folder/cemu" "cemu"
set_setting_value "$cemuconf" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths" set_setting_value "$cemuconf" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths"
rm -rf "$XDG_DATA_HOME/Cemu/keys.txt" && ln -s "$bios_folder/cemu/keys.txt" "$XDG_DATA_HOME/Cemu/keys.txt" && log d "Linked $bios_folder/cemu/keys.txt to $XDG_DATA_HOME/Cemu/keys.txt" if [[ -e "$bios_folder/cemu/keys.txt" ]]; then
rm -rf "$XDG_DATA_HOME/Cemu/keys.txt" && ln -s "$bios_folder/cemu/keys.txt" "$XDG_DATA_HOME/Cemu/keys.txt" && log d "Linked $bios_folder/cemu/keys.txt to $XDG_DATA_HOME/Cemu/keys.txt"
fi
fi fi
# Shared actions # Shared actions
dir_prep "$saves_folder/wiiu/cemu" "$bios_folder/cemu/usr/save" dir_prep "$saves_folder/wiiu/cemu" "$bios_folder/cemu/usr/save"
@ -591,7 +593,7 @@ prepare_component() {
dir_prep "$texture_packs_folder/PPSSPP" "/var/config/ppsspp/PSP/TEXTURES" dir_prep "$texture_packs_folder/PPSSPP" "/var/config/ppsspp/PSP/TEXTURES"
create_dir -d "$cheats_folder/PPSSPP" create_dir -d "$cheats_folder/PPSSPP"
dir_prep "$cheats_folder/PPSSPP" "/var/config/ppsspp/PSP/Cheats" dir_prep "$cheats_folder/PPSSPP" "/var/config/ppsspp/PSP/Cheats"
if [[ -d "$cheats_folder/PPSSPP" && "$(ls -A $cheats_folder/PPSSPP)" ]]; then if [[ -d "$cheats_folder/PPSSPP" && "$(ls -A "$cheats_folder"/PPSSPP)" ]]; then
backup_file="$backups_folder/cheats/PPSSPP-$(date +%y%m%d).tar.gz" backup_file="$backups_folder/cheats/PPSSPP-$(date +%y%m%d).tar.gz"
create_dir "$(dirname "$backup_file")" create_dir "$(dirname "$backup_file")"
tar -czf "$backup_file" -C "$cheats_folder" PPSSPP tar -czf "$backup_file" -C "$cheats_folder" PPSSPP
@ -640,7 +642,9 @@ prepare_component() {
dir_prep "$saves_folder/wii/primehack" "/var/data/primehack/Wii" dir_prep "$saves_folder/wii/primehack" "/var/data/primehack/Wii"
dir_prep "$mods_folder/Primehack" "/var/data/primehack/Load/GraphicMods" dir_prep "$mods_folder/Primehack" "/var/data/primehack/Load/GraphicMods"
dir_prep "$texture_packs_folder/Primehack" "/var/data/primehack/Load/Textures" dir_prep "$texture_packs_folder/Primehack" "/var/data/primehack/Load/Textures"
cp -fvr "$config/primehack/data/"* "$multi_user_data_folder/$SteamAppUser/data/primehack/" # this must be done after the dirs are prepared as it copying some "mods" if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
cp -fvr "$config/primehack/data/"* "$multi_user_data_folder/$SteamAppUser/data/primehack/" # this must be done after the dirs are prepared as it copying some "mods"
fi
# Reset default preset settings # Reset default preset settings
set_setting_value "$rd_conf" "primehack" "$(get_setting_value "$rd_defaults" "primehack" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit" set_setting_value "$rd_conf" "primehack" "$(get_setting_value "$rd_defaults" "primehack" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit"
@ -708,17 +712,17 @@ prepare_component() {
rm -rf "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" rm -rf "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
#create_dir "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/system" #create_dir "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/system"
cp -fv $config/ryujinx/* "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" cp -fv $config/ryujinx/* "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/Config.json" sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/Config.json"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" "/var/config/Ryujinx" dir_prep "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" "/var/config/Ryujinx"
else else
# removing config directory to wipe legacy files # removing config directory to wipe legacy files
log d "Removing \"/var/config/Ryujinx\"" log d "Removing \"/var/config/Ryujinx\""
rm -rf /var/config/Ryujinx rm -rf "/var/config/Ryujinx"
create_dir /var/config/Ryujinx/system create_dir "/var/config/Ryujinx/system"
cp -fv $config/ryujinx/Config.json $ryujinxconf cp -fv "$config/ryujinx/Config.json" "$ryujinxconf"
cp -fvr $config/ryujinx/profiles /var/config/Ryujinx/ cp -fvr "$config/ryujinx/profiles" "/var/config/Ryujinx/"
log d "Replacing placeholders in \"$ryujinxconf\"" log d "Replacing placeholders in \"$ryujinxconf\""
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$ryujinxconf" sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "$ryujinxconf"
create_dir "$logs_folder/ryujinx" create_dir "$logs_folder/ryujinx"
create_dir "$mods_folder/ryujinx" create_dir "$mods_folder/ryujinx"
create_dir "$screenshots_folder/ryujinx" create_dir "$screenshots_folder/ryujinx"
@ -796,10 +800,10 @@ prepare_component() {
log i "Prepearing XEMU" log i "Prepearing XEMU"
log i "------------------------" log i "------------------------"
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
rm -rf /var/config/xemu rm -rf "/var/config/xemu"
rm -rf /var/data/xemu rm -rf "/var/data/xemu"
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/xemu/" create_dir -d "$multi_user_data_folder/$SteamAppUser/config/xemu/"
cp -fv $config/xemu/xemu.toml "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" cp -fv "$config/xemu/xemu.toml" "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "screenshot_dir" "'$screenshots_folder'" "xemu" "General" set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "screenshot_dir" "'$screenshots_folder'" "xemu" "General"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files" set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files" set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files"
@ -808,19 +812,19 @@ prepare_component() {
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/config/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where component will look dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/config/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where component will look
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/data/xemu/xemu" dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/data/xemu/xemu"
else # Single-user actions else # Single-user actions
rm -rf /var/config/xemu rm -rf "/var/config/xemu"
rm -rf /var/data/xemu rm -rf "/var/data/xemu"
dir_prep "/var/config/xemu" "/var/data/xemu/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where component will look dir_prep "/var/config/xemu" "/var/data/xemu/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where component will look
cp -fv $config/xemu/xemu.toml "$xemuconf" cp -fv "$config/xemu/xemu.toml" "$xemuconf"
set_setting_value "$xemuconf" "screenshot_dir" "'$screenshots_folder'" "xemu" "General" set_setting_value "$xemuconf" "screenshot_dir" "'$screenshots_folder'" "xemu" "General"
set_setting_value "$xemuconf" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files" set_setting_value "$xemuconf" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files"
set_setting_value "$xemuconf" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files" set_setting_value "$xemuconf" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files"
set_setting_value "$xemuconf" "eeprom_path" "'$saves_folder/xbox/xemu/xbox-eeprom.bin'" "xemu" "sys.files" set_setting_value "$xemuconf" "eeprom_path" "'$saves_folder/xbox/xemu/xbox-eeprom.bin'" "xemu" "sys.files"
set_setting_value "$xemuconf" "hdd_path" "'$bios_folder/xbox_hdd.qcow2'" "xemu" "sys.files" set_setting_value "$xemuconf" "hdd_path" "'$bios_folder/xbox_hdd.qcow2'" "xemu" "sys.files"
fi # Shared actions fi # Shared actions
create_dir $saves_folder/xbox/xemu/ create_dir "$saves_folder/xbox/xemu/"
# Preparing HD dummy Image if the image is not found # Preparing HD dummy Image if the image is not found
if [ ! -f $bios_folder/xbox_hdd.qcow2 ] if [ ! -f "$bios_folder/xbox_hdd.qcow2" ]
then then
cp -f "/app/retrodeck/extras/XEMU/xbox_hdd.qcow2" "$bios_folder/xbox_hdd.qcow2" cp -f "/app/retrodeck/extras/XEMU/xbox_hdd.qcow2" "$bios_folder/xbox_hdd.qcow2"
fi fi
@ -918,7 +922,7 @@ prepare_component() {
cp -fvr "$config/mame/default.cfg" "$mamedefconf" cp -fvr "$config/mame/default.cfg" "$mamedefconf"
cp -fvr "/app/share/mame/bgfx/"* "$shaders_folder/mame/bgfx" cp -fvr "/app/share/mame/bgfx/"* "$shaders_folder/mame/bgfx"
sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "$mameconf" # one-off as roms folders are a lot sed -i 's#RETRODECKROMSDIR#'"$roms_folder"'#g' "$mameconf" # one-off as roms folders are a lot
set_setting_value "$mameconf" "nvram_directory" "$saves_folder/mame-sa/nvram" "mame" set_setting_value "$mameconf" "nvram_directory" "$saves_folder/mame-sa/nvram" "mame"
set_setting_value "$mameconf" "state_directory" "$states_folder/mame-sa" "mame" set_setting_value "$mameconf" "state_directory" "$states_folder/mame-sa" "mame"
set_setting_value "$mameconf" "snapshot_directory" "$screenshots_folder/mame-sa" "mame" set_setting_value "$mameconf" "snapshot_directory" "$screenshots_folder/mame-sa" "mame"
@ -948,9 +952,9 @@ prepare_component() {
cp -fvr "$config/gzdoom/gzdoom.ini" "/var/config/gzdoom" cp -fvr "$config/gzdoom/gzdoom.ini" "/var/config/gzdoom"
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON sed -i 's#RETRODECKROMSDIR#'"$roms_folder"'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON sed -i 's#RETRODECKSAVESDIR#'"$saves_folder"'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
fi fi
if [[ "$component" =~ ^(portmaster|all)$ ]]; then if [[ "$component" =~ ^(portmaster|all)$ ]]; then