Skip to content

Commit ce5f63f

Browse files
committed
feat(prepare_component): refactor to adapt all the components to the NEO Porject
1 parent b2b42b2 commit ce5f63f

21 files changed

+466
-387
lines changed

cemu/prepare_component.sh

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
11
#!/bin/bash
22

3-
if [[ "$component" =~ ^(cemu|all)$ ]]; then
4-
component_found="true"
5-
if [[ "$action" == "reset" ]]; then # Run reset-only commands
6-
log i "----------------------"
7-
log i "Prepearing CEMU"
8-
log i "----------------------"
9-
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
10-
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/Cemu"
11-
cp -fr "$config/cemu/"* "$multi_user_data_folder/$SteamAppUser/config/Cemu/"
12-
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/Cemu/settings.ini" "mlc_path" "$bios_folder/cemu" "cemu"
13-
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/Cemu/settings.ini" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths"
14-
dir_prep "$multi_user_data_folder/$SteamAppUser/config/Cemu" "$XDG_CONFIG_HOME/Cemu"
15-
else
16-
create_dir -d "$XDG_CONFIG_HOME/Cemu/"
17-
cp -fr "$config/cemu/"* "$XDG_CONFIG_HOME/Cemu/"
18-
set_setting_value "$cemuconf" "mlc_path" "$bios_folder/cemu" "cemu"
19-
set_setting_value "$cemuconf" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths"
20-
if [[ -e "$bios_folder/cemu/keys.txt" ]]; then
21-
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"
22-
fi
23-
fi
24-
# Shared actions
25-
dir_prep "$saves_folder/wiiu/cemu" "$bios_folder/cemu/usr/save"
26-
fi
27-
if [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves
3+
component_name="$(basename "$(dirname "$0")")"
4+
config="/app/retrodeck/config/$component_name/rd_config"
5+
6+
if [[ "$action" == "reset" ]]; then # Run reset-only commands
7+
log i "----------------------"
8+
log i "Prepearing CEMU"
9+
log i "----------------------"
10+
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
11+
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/Cemu"
12+
cp -fr "$config/"* "$multi_user_data_folder/$SteamAppUser/config/Cemu/"
13+
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/Cemu/settings.ini" "mlc_path" "$bios_folder/cemu" "cemu"
14+
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/Cemu/settings.ini" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths"
15+
dir_prep "$multi_user_data_folder/$SteamAppUser/config/Cemu" "$XDG_CONFIG_HOME/Cemu"
16+
else
17+
create_dir -d "$XDG_CONFIG_HOME/Cemu/"
18+
cp -fr "$config/"* "$XDG_CONFIG_HOME/Cemu/"
2819
set_setting_value "$cemuconf" "mlc_path" "$bios_folder/cemu" "cemu"
2920
set_setting_value "$cemuconf" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths"
30-
dir_prep "$saves_folder/wiiu/cemu" "$bios_folder/cemu/usr/save"
21+
if [[ -e "$bios_folder/cemu/keys.txt" ]]; then
22+
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"
23+
fi
3124
fi
25+
# Shared actions
26+
dir_prep "$saves_folder/wiiu/cemu" "$bios_folder/cemu/usr/save"
27+
fi
28+
if [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves
29+
set_setting_value "$cemuconf" "mlc_path" "$bios_folder/cemu" "cemu"
30+
set_setting_value "$cemuconf" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths"
31+
dir_prep "$saves_folder/wiiu/cemu" "$bios_folder/cemu/usr/save"
3232
fi
33+

dolphin/prepare_component.sh

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,33 @@
11
#!/bin/bash
22

3-
if [[ "$component" =~ ^(dolphin|dolphin-emu|all)$ ]]; then
4-
component_found="true"
5-
if [[ "$action" == "reset" ]]; then # Run reset-only commands
6-
log i "----------------------"
7-
log i "Prepearing DOLPHIN"
8-
log i "----------------------"
9-
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
10-
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu"
11-
cp -fvr "$config/dolphin/"* "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/"
12-
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "BIOS" "$bios_folder" "dolphin" "GBA"
13-
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "SavesPath" "$saves_folder/gba" "dolphin" "GBA"
14-
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "ISOPath0" "$roms_folder/wii" "dolphin" "General"
15-
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "ISOPath1" "$roms_folder/gc" "dolphin" "General"
16-
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "WiiSDCardPath" "$saves_folder/wii/dolphin/sd.raw" "dolphin" "General"
17-
dir_prep "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu" "$XDG_CONFIG_HOME/dolphin-emu"
18-
else # Single-user actions
19-
create_dir -d "$XDG_CONFIG_HOME/dolphin-emu/"
20-
cp -fvr "$config/dolphin/"* "$XDG_CONFIG_HOME/dolphin-emu/"
21-
set_setting_value "$dolphinconf" "BIOS" "$bios_folder" "dolphin" "GBA"
22-
set_setting_value "$dolphinconf" "SavesPath" "$saves_folder/gba" "dolphin" "GBA"
23-
set_setting_value "$dolphinconf" "ISOPath0" "$roms_folder/wii" "dolphin" "General"
24-
set_setting_value "$dolphinconf" "ISOPath1" "$roms_folder/gc" "dolphin" "General"
25-
set_setting_value "$dolphinconf" "WiiSDCardPath" "$saves_folder/wii/dolphin/sd.raw" "dolphin" "General"
3+
component_name="$(basename "$(dirname "$0")")"
4+
config="/app/retrodeck/config/$component_name/rd_config"
5+
6+
if [[ "$action" == "reset" ]]; then # Run reset-only commands
7+
8+
log i "----------------------"
9+
log i "Prepearing DOLPHIN"
10+
log i "----------------------"
11+
12+
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
13+
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu"
14+
cp -fvr "$config/"* "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/"
15+
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "BIOS" "$bios_folder" "dolphin" "GBA"
16+
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "SavesPath" "$saves_folder/gba" "dolphin" "GBA"
17+
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "ISOPath0" "$roms_folder/wii" "dolphin" "General"
18+
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "ISOPath1" "$roms_folder/gc" "dolphin" "General"
19+
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "WiiSDCardPath" "$saves_folder/wii/dolphin/sd.raw" "dolphin" "General"
20+
dir_prep "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu" "$XDG_CONFIG_HOME/dolphin-emu"
21+
else # Single-user actions
22+
create_dir -d "$XDG_CONFIG_HOME/dolphin-emu/"
23+
cp -fvr "$config/"* "$XDG_CONFIG_HOME/dolphin-emu/"
24+
set_setting_value "$dolphinconf" "BIOS" "$bios_folder" "dolphin" "GBA"
25+
set_setting_value "$dolphinconf" "SavesPath" "$saves_folder/gba" "dolphin" "GBA"
26+
set_setting_value "$dolphinconf" "ISOPath0" "$roms_folder/wii" "dolphin" "General"
27+
set_setting_value "$dolphinconf" "ISOPath1" "$roms_folder/gc" "dolphin" "General"
28+
set_setting_value "$dolphinconf" "WiiSDCardPath" "$saves_folder/wii/dolphin/sd.raw" "dolphin" "General"
2629
fi
30+
2731
# Shared actions
2832
dir_prep "$saves_folder/gc/dolphin/EU" "$XDG_DATA_HOME/dolphin-emu/GC/EUR" # TODO: Multi-user one-off
2933
dir_prep "$saves_folder/gc/dolphin/US" "$XDG_DATA_HOME/dolphin-emu/GC/USA" # TODO: Multi-user one-off
@@ -36,8 +40,9 @@ if [[ "$component" =~ ^(dolphin|dolphin-emu|all)$ ]]; then
3640

3741
# Reset default preset settings
3842
set_setting_value "$rd_conf" "dolphin" "$(get_setting_value "$rd_defaults" "dolphin" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit"
39-
fi
40-
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
43+
fi
44+
45+
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
4146
dir_prep "$saves_folder/gc/dolphin/EU" "$XDG_DATA_HOME/dolphin-emu/GC/EUR"
4247
dir_prep "$saves_folder/gc/dolphin/US" "$XDG_DATA_HOME/dolphin-emu/GC/USA"
4348
dir_prep "$saves_folder/gc/dolphin/JP" "$XDG_DATA_HOME/dolphin-emu/GC/JAP"
@@ -51,5 +56,4 @@ if [[ "$component" =~ ^(dolphin|dolphin-emu|all)$ ]]; then
5156
set_setting_value "$dolphinconf" "ISOPath0" "$roms_folder/wii" "dolphin" "General"
5257
set_setting_value "$dolphinconf" "ISOPath1" "$roms_folder/gc" "dolphin" "General"
5358
set_setting_value "$dolphinconf" "WiiSDCardPath" "$saves_folder/wii/dolphin/sd.raw" "dolphin" "General"
54-
fi
55-
fi
59+
fi

duckstation/prepare_component.sh

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
#!/bin/bash
22

3-
if [[ "$component" =~ ^(duckstation|all)$ ]]; then
4-
component_found="true"
5-
if [[ "$action" == "reset" ]]; then # Run reset-only commands
6-
log i "------------------------"
7-
log i "Preparing DUCKSTATION"
8-
log i "------------------------"
3+
component_name="$(basename "$(dirname "$0")")"
4+
config="/app/retrodeck/config/$component_name/rd_config"
5+
6+
if [[ "$action" == "reset" ]]; then # Run reset-only commands
7+
8+
log i "------------------------"
9+
log i "Preparing DUCKSTATION"
10+
log i "------------------------"
11+
912
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
1013
create_dir -d "$multi_user_data_folder/$SteamAppUser/data/duckstation/"
11-
cp -fv "$config/duckstation/"* "$multi_user_data_folder/$SteamAppUser/data/duckstation"
14+
cp -fv "$config/"* "$multi_user_data_folder/$SteamAppUser/data/duckstation"
1215
set_setting_value "$multi_user_data_folder/$SteamAppUser/data/duckstation/settings.ini" "SearchDirectory" "$bios_folder" "duckstation" "BIOS"
1316
set_setting_value "$multi_user_data_folder/$SteamAppUser/data/duckstation/settings.ini" "Card1Path" "$saves_folder/psx/duckstation/memcards/shared_card_1.mcd" "duckstation" "MemoryCards"
1417
set_setting_value "$multi_user_data_folder/$SteamAppUser/data/duckstation/settings.ini" "Card2Path" "$saves_folder/psx/duckstation/memcards/shared_card_2.mcd" "duckstation" "MemoryCards"
@@ -18,7 +21,7 @@ if [[ "$component" =~ ^(duckstation|all)$ ]]; then
1821
else # Single-user actions
1922
create_dir -d "$XDG_CONFIG_HOME/duckstation/"
2023
create_dir "$saves_folder/psx/duckstation/memcards"
21-
cp -fv "$config/duckstation/"* "$XDG_CONFIG_HOME/duckstation"
24+
cp -fv "$config/"* "$XDG_CONFIG_HOME/duckstation"
2225
set_setting_value "$duckstationconf" "SearchDirectory" "$bios_folder" "duckstation" "BIOS"
2326
set_setting_value "$duckstationconf" "Card1Path" "$saves_folder/psx/duckstation/memcards/shared_card_1.mcd" "duckstation" "MemoryCards"
2427
set_setting_value "$duckstationconf" "Card2Path" "$saves_folder/psx/duckstation/memcards/shared_card_2.mcd" "duckstation" "MemoryCards"
@@ -34,14 +37,14 @@ if [[ "$component" =~ ^(duckstation|all)$ ]]; then
3437
set_setting_value "$rd_conf" "duckstation" "$(get_setting_value "$rd_defaults" "duckstation" "retrodeck" "cheevos_hardcore")" "retrodeck" "cheevos_hardcore"
3538
set_setting_value "$rd_conf" "duckstation" "$(get_setting_value "$rd_defaults" "duckstation" "retrodeck" "savestate_auto_save")" "retrodeck" "savestate_auto_save"
3639
set_setting_value "$rd_conf" "duckstation" "$(get_setting_value "$rd_defaults" "duckstation" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit"
37-
fi
38-
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
39-
set_setting_value "$duckstationconf" "SearchDirectory" "$bios_folder" "duckstation" "BIOS"
40-
set_setting_value "$duckstationconf" "Card1Path" "$saves_folder/psx/duckstation/memcards/shared_card_1.mcd" "duckstation" "MemoryCards"
41-
set_setting_value "$duckstationconf" "Card2Path" "$saves_folder/psx/duckstation/memcards/shared_card_2.mcd" "duckstation" "MemoryCards"
42-
set_setting_value "$duckstationconf" "Directory" "$saves_folder/psx/duckstation/memcards" "duckstation" "MemoryCards"
43-
set_setting_value "$duckstationconf" "RecursivePaths" "$roms_folder/psx" "duckstation" "GameList"
44-
dir_prep "$states_folder/psx/duckstation" "$XDG_CONFIG_HOME/duckstation/savestates" # This is hard-coded in Duckstation, always needed
45-
dir_prep "$texture_packs_folder/Duckstation" "$XDG_CONFIG_HOME/duckstation/textures"
46-
fi
40+
fi
41+
42+
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
43+
set_setting_value "$duckstationconf" "SearchDirectory" "$bios_folder" "duckstation" "BIOS"
44+
set_setting_value "$duckstationconf" "Card1Path" "$saves_folder/psx/duckstation/memcards/shared_card_1.mcd" "duckstation" "MemoryCards"
45+
set_setting_value "$duckstationconf" "Card2Path" "$saves_folder/psx/duckstation/memcards/shared_card_2.mcd" "duckstation" "MemoryCards"
46+
set_setting_value "$duckstationconf" "Directory" "$saves_folder/psx/duckstation/memcards" "duckstation" "MemoryCards"
47+
set_setting_value "$duckstationconf" "RecursivePaths" "$roms_folder/psx" "duckstation" "GameList"
48+
dir_prep "$states_folder/psx/duckstation" "$XDG_CONFIG_HOME/duckstation/savestates" # This is hard-coded in Duckstation, always needed
49+
dir_prep "$texture_packs_folder/Duckstation" "$XDG_CONFIG_HOME/duckstation/textures"
4750
fi

es-de/prepare_component.sh

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
#!/bin/bash
22

3-
if [[ "$component" =~ ^(es-de|all)$ ]]; then # For use after ESDE-related folders are moved or a reset
4-
component_found="true"
5-
log i "--------------------------------"
6-
log i "Prepearing ES-DE"
7-
log i "--------------------------------"
8-
if [[ "$action" == "reset" ]]; then
3+
component_name="$(basename "$(dirname "$0")")"
4+
config=""$config/"config/$component_name/rd_config"
5+
6+
log i "--------------------------------"
7+
log i "Prepearing ES-DE"
8+
log i "--------------------------------"
9+
10+
if [[ "$action" == "reset" ]]; then
911
rm -rf "$XDG_CONFIG_HOME/ES-DE"
1012
create_dir "$XDG_CONFIG_HOME/ES-DE/settings"
1113
log d "Prepearing es_settings.xml"
12-
cp -f "/app/retrodeck/es_settings.xml" "$XDG_CONFIG_HOME/ES-DE/settings/es_settings.xml"
14+
cp -f ""$config/"es_settings.xml" "$XDG_CONFIG_HOME/ES-DE/settings/es_settings.xml"
1315
set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings"
1416
set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings"
1517
set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings"
@@ -19,11 +21,11 @@ if [[ "$component" =~ ^(es-de|all)$ ]]; then # For use after ESDE-related folder
1921
log d "Generating roms system folders"
2022
es-de --create-system-dirs
2123
update_splashscreens
22-
fi
23-
if [[ "$action" == "postmove" ]]; then
24+
fi
25+
26+
if [[ "$action" == "postmove" ]]; then
2427
set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings"
2528
set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings"
2629
set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings"
2730
dir_prep "$rdhome/ES-DE/gamelists" "$XDG_CONFIG_HOME/ES-DE/gamelists"
28-
fi
2931
fi

gzdoom/prepare_component.sh

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
#!/bin/bash
22

3-
if [[ "$component" =~ ^(gzdoom|all)$ ]]; then
4-
component_found="true"
5-
# TODO: do a proper script
6-
# This is just a placeholder script to test the emulator's flow
7-
log i "----------------------"
8-
log i "Prepearing GZDOOM"
9-
log i "----------------------"
3+
component_name="$(basename "$(dirname "$0")")"
4+
config="/app/retrodeck/config/$component_name/rd_config"
105

11-
create_dir "$XDG_CONFIG_HOME/gzdoom"
12-
create_dir "$XDG_DATA_HOME/gzdoom/audio/midi"
13-
create_dir "$XDG_DATA_HOME/gzdoom/audio/fm_banks"
14-
create_dir "$XDG_DATA_HOME/gzdoom/audio/soundfonts"
15-
create_dir "$bios_folder/gzdoom"
6+
# TODO: do a proper script
7+
# This is just a placeholder script to test the emulator's flow
8+
log i "----------------------"
9+
log i "Prepearing GZDOOM"
10+
log i "----------------------"
1611

17-
cp -fvr "$config/gzdoom/gzdoom.ini" "$XDG_CONFIG_HOME/gzdoom"
12+
create_dir "$XDG_CONFIG_HOME/gzdoom"
13+
create_dir "$XDG_DATA_HOME/gzdoom/audio/midi"
14+
create_dir "$XDG_DATA_HOME/gzdoom/audio/fm_banks"
15+
create_dir "$XDG_DATA_HOME/gzdoom/audio/soundfonts"
16+
create_dir "$bios_folder/gzdoom"
1817

19-
sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "$XDG_CONFIG_HOME/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
20-
sed -i 's#RETRODECKROMSDIR#'"$roms_folder"'#g' "$XDG_CONFIG_HOME/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
21-
sed -i 's#RETRODECKSAVESDIR#'"$saves_folder"'#g' "$XDG_CONFIG_HOME/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
22-
fi
18+
cp -fvr "$config/"gzdoom.ini" "$XDG_CONFIG_HOME/gzdoom"
19+
20+
sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "$XDG_CONFIG_HOME/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
21+
sed -i 's#RETRODECKROMSDIR#'"$roms_folder"'#g' "$XDG_CONFIG_HOME/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
22+
sed -i 's#RETRODECKSAVESDIR#'"$saves_folder"'#g' "$XDG_CONFIG_HOME/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON

0 commit comments

Comments
 (0)