RESET_COMPONENT: migrated to features.json

This commit is contained in:
XargonWan 2024-08-22 14:25:23 +09:00
parent 1fc1e4fe1a
commit d6f1fa3a3f

View file

@ -2,6 +2,16 @@
source /app/libexec/global.sh source /app/libexec/global.sh
# uses jq to extract all the emulators (components) that don't have resettable: false in the features.json and separate them with "|"
resettable_components=$(jq -r '
[(.emulator | to_entries[]) |
select(.value.core == null and .value.resettable != false) |
.key] | sort | join("|")
' "$features")
# uses sed to create, a, list, like, this
pretty_resettable_components=$(echo "$resettable_components" | sed 's/|/, /g')
# Arguments section # Arguments section
for i in "$@"; do for i in "$@"; do
@ -55,19 +65,15 @@ https://retrodeck.net
fi fi
;; ;;
--reset-component*) --reset-component*)
component="$2"
if [ -z "$component" ]; then
echo "You are about to reset one or more RetroDECK components or emulators." echo "You are about to reset one or more RetroDECK components or emulators."
echo "Available options are: es-de, retroarch, cemu, dolphin, duckstation, gzdoom, melonds, pcsx3, pico8, ppsspp, primehack, rpcs3, ryujinx, xemu, vita3k, mame, all" echo -e "Available options are:\nall, $pretty_resettable_components"
read -p "Please enter the component you would like to reset: " component read -p "Please enter the component you would like to reset: " component
component=$(echo "$component" | tr '[:upper:]' '[:lower:]') component=$(echo "$component" | tr '[:upper:]' '[:lower:]')
fi
# TODO: this is the jq to get all the resettable emulators list, generic component is missing if [[ "$component" =~ ^(all|$resettable_components)$ ]]; then
# jq -r '
# [(.emulator | to_entries[]) |
# select(.value.core == null and .value.resettable != false) |
# .key] | sort | join("|")
# ' "$features"
if [[ "$component" =~ ^(es-de|retroarch|cemu|dolphin|duckstation|gzdoom|mame|melonds|pcsx2|ppsspp|primehack|ryujinx|rpcs3|vita3k|xemu|all)$ ]]; then
read -p "You are about to reset $component to default settings. Enter 'y' to continue, 'n' to stop: " response read -p "You are about to reset $component to default settings. Enter 'y' to continue, 'n' to stop: " response
if [[ $response == [yY] ]]; then if [[ $response == [yY] ]]; then
prepare_component "reset" "$component" "cli" prepare_component "reset" "$component" "cli"