Skip to content

Commit 738caa5

Browse files
committed
If system.json fails to load, replace it with the stock PyUI one vs failing to start
1 parent bada99d commit 738caa5

File tree

8 files changed

+19
-15
lines changed

8 files changed

+19
-15
lines changed

main-ui/devices/device_common.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11

22

3+
import os
34
import socket
45
import subprocess
56
import sys
67
import time
78
from audio.audio_player_none import AudioPlayerNone
89
from controller.controller_inputs import ControllerInput
910
from devices.abstract_device import AbstractDevice
11+
from devices.miyoo.system_config import SystemConfig
1012
from devices.utils.process_runner import ProcessRunner
1113
from devices.wifi.wifi_status import WifiStatus
1214
from display.display import Display
1315
from display.font_purpose import FontPurpose
1416
from utils import throttle
17+
from utils.config_copier import ConfigCopier
1518
from utils.logger import PyUiLogger
1619

1720

@@ -457,4 +460,12 @@ def startup_init(self, include_wifi):
457460
def might_require_surface_format_conversion(self):
458461
return False
459462

460-
463+
def _load_system_config(self, config_path, config_if_missing):
464+
ConfigCopier.ensure_config(config_path, config_if_missing)
465+
try:
466+
self.system_config = SystemConfig(config_path)
467+
except Exception as e:
468+
PyUiLogger.get_logger().error(f"Failed to load system config, resetting config: {e}")
469+
os.remove(config_path)
470+
ConfigCopier.ensure_config(config_path, config_if_missing)
471+
self.system_config = SystemConfig(config_path)

main-ui/devices/miyoo/flip/miyoo_a30.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ def __init__(self, device_name, main_ui_mode):
3636
self.audio_player = AudioPlayerDelegateSdl2()
3737
script_dir = Path(__file__).resolve().parent
3838
source = script_dir / 'a30-system.json'
39-
ConfigCopier.ensure_config("/mnt/SDCARD/Saves/a30-system.json", source)
40-
self.system_config = SystemConfig("/mnt/SDCARD/Saves/a30-system.json")
39+
self._load_system_config("/mnt/SDCARD/Saves/a30-system.json", source)
4140

4241
if(main_ui_mode):
4342
self.miyoo_games_file_parser = MiyooGamesFileParser()

main-ui/devices/miyoo/flip/miyoo_flip.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,7 @@ def __init__(self, device_name, main_ui_mode):
7676

7777
script_dir = Path(__file__).resolve().parent
7878
source = script_dir / 'flip-system.json'
79-
ConfigCopier.ensure_config("/mnt/SDCARD/Saves/flip-system.json", source)
80-
self.system_config = SystemConfig("/mnt/SDCARD/Saves/flip-system.json")
79+
self._load_system_config("/mnt/SDCARD/Saves/flip-system.json", source)
8180

8281
if(main_ui_mode):
8382
self.miyoo_games_file_parser = MiyooGamesFileParser()

main-ui/devices/miyoo/mini/miyoo_mini_common.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@ def __init__(self, device_name, main_ui_mode, miyoo_mini_specific_model_variable
4545
self.miyoo_mini_specific_model_variables = miyoo_mini_specific_model_variables
4646
self.controller_interface = self.build_controller_interface()
4747

48-
ConfigCopier.ensure_config("/mnt/SDCARD/Saves/mini-flip-system.json", Path(__file__).resolve().parent / 'mini-flip-system.json')
49-
self.system_config = SystemConfig("/mnt/SDCARD/Saves/mini-flip-system.json")
48+
self._load_system_config("/mnt/SDCARD/Saves/mini-flip-system.json", Path(__file__).resolve().parent / 'mini-flip-system.json')
5049

5150
if(main_ui_mode):
5251
self.miyoo_mini_flip_shared_memory_writer = MiyooMiniFlipSharedMemoryWriter()

main-ui/devices/muos/muos_device.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ def setup_system_config(self):
3737
self.parent_dir = os.path.dirname(base_dir)
3838
source = os.path.join(self.script_dir,"muos-system.json")
3939
system_json_path = os.path.join(self.parent_dir,"muos-system.json")
40-
ConfigCopier.ensure_config(system_json_path, Path(source))
41-
self.system_config = SystemConfig(system_json_path)
40+
self._load_system_config(system_json_path, Path(source))
4241

4342
def sleep(self):
4443
ProcessRunner.run(["/opt/muos/script/system/suspend.sh"])

main-ui/devices/trimui/trim_ui_brick.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ def __init__(self, device_name, main_ui_mode):
3131
self.audio_player = AudioPlayerDelegateSdl2()
3232
script_dir = Path(__file__).resolve().parent
3333
source = script_dir / 'brick-system.json'
34-
ConfigCopier.ensure_config("/mnt/SDCARD/Saves/trim-ui-brick-system.json", source)
35-
self.system_config = SystemConfig("/mnt/SDCARD/Saves/trim-ui-brick-system.json")
34+
self._load_system_config("/mnt/SDCARD/Saves/trim-ui-brick-system.json", source)
3635

3736
if(main_ui_mode):
3837
trim_stock_json_file = script_dir / 'stock/brick.json'

main-ui/devices/trimui/trim_ui_smart_pro.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ def __init__(self, device_name,main_ui_mode):
3030

3131
script_dir = Path(__file__).resolve().parent
3232
source = script_dir / 'brick-system.json'
33-
ConfigCopier.ensure_config("/mnt/SDCARD/Saves/trim-ui-smart-pro-system.json", source)
34-
self.system_config = SystemConfig("/mnt/SDCARD/Saves/trim-ui-smart-pro-system.json")
33+
self._load_system_config("/mnt/SDCARD/Saves/trim-ui-smart-pro-system.json", source)
3534
if(main_ui_mode):
3635
trim_stock_json_file = script_dir / 'stock/brick.json'
3736
ConfigCopier.ensure_config(TrimUISmartPro.TRIMUI_STOCK_CONFIG_LOCATION, trim_stock_json_file)

main-ui/devices/trimui/trim_ui_smart_pro_s.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ def __init__(self, device_name,main_ui_mode):
3030

3131
script_dir = Path(__file__).resolve().parent
3232
source = script_dir / 'brick-system.json'
33-
ConfigCopier.ensure_config("/mnt/SDCARD/Saves/trim-ui-smart-pro-s-system.json", source)
34-
self.system_config = SystemConfig("/mnt/SDCARD/Saves/trim-ui-smart-pro-s-system.json")
33+
self._load_system_config("/mnt/SDCARD/Saves/trim-ui-smart-pro-s-system.json", source)
3534
self.mainui_volume = 0
3635

3736
if(main_ui_mode):

0 commit comments

Comments
 (0)