diff --git a/functions/framework.sh b/functions/framework.sh index 08e736f3..de5f0fe3 100644 --- a/functions/framework.sh +++ b/functions/framework.sh @@ -12,15 +12,9 @@ set_setting_value() { case $4 in - "retrodeck" | "melonds" | "yuzu" | "citra" | "libretro_scummvm" ) - if [[ -z $current_section_name ]]; then - sed -i 's^\^'"$setting_name_to_change"'=.*^'"$setting_name_to_change"'='"$setting_value_to_change"'^' "$1" - else - sed -i '\^\['"$current_section_name"'\]^,\^\^'"$setting_name_to_change"'=^s^\^'"$setting_name_to_change"'=.*^'"$setting_name_to_change"'='"$setting_value_to_change"'^' "$1" - fi - if [[ "$4" == "retrodeck" && ("$current_section_name" == "" || "$current_section_name" == "paths" || "$current_section_name" == "options") ]]; then # If a RetroDECK setting is being changed, also write it to memory for immediate use - declare -g "$setting_name_to_change=$setting_value_to_change" - fi + "retrodeck" | "melonds" | "yuzu" | "citra" | "libretro_scummvm" | "ini" ) + initool set "$1" $current_section_name $setting_name_to_change $setting_value_to_change > "$1.new" && mv -f "$1.new" "$1" + conf_read ;; "retroarch" ) diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index a8fb4ec6..a5a25c6e 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -201,6 +201,15 @@ modules: url: https://github.com/mikefarah/yq/releases/download/v4.33.3/yq_linux_amd64 sha256: 4ee662847c588c3ef2fec8bfb304e8739e3dbaba87ccb9a608d691c88f5b64dc + - name: initool + buildsystem: simple + build-commands: + - install -Dm755 initool ${FLATPAK_DEST}/bin + source: + - type: archive + url: https://github.com/dbohdan/initool/releases/download/v0.18.0/initool-v0.18.0-fc0c3b1-linux-x86_64.zip + sha256: 0b3fc8c53a97e5362d2899f6a79a92bef9953c2c43716cfa85019211f67655bb + # GODOT Configurator - name: retrodeck-configurator buildsystem: simple