mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-24 03:50:14 +10:00
defaults.py: Implement additional error handling for 2.1.0 bug
This commit is contained in:
@@ -435,5 +435,14 @@ class GenerateDefaults:
|
||||
plist[key] = None
|
||||
|
||||
if hasattr(self.constants, constants_key):
|
||||
# Check if type is different
|
||||
original_type = type(getattr(self.constants, constants_key))
|
||||
new_type = type(plist[key])
|
||||
if original_type != new_type:
|
||||
logging.error(f"Global settings type mismatch for {constants_key}: {original_type} vs {new_type}")
|
||||
logging.error(f"Removing {key} from global settings")
|
||||
global_settings.GlobalEnviromentSettings().delete_property(key)
|
||||
continue
|
||||
|
||||
logging.info(f"Setting {constants_key} to {plist[key]}")
|
||||
setattr(self.constants, constants_key, plist[key])
|
||||
@@ -44,6 +44,25 @@ class GlobalEnviromentSettings:
|
||||
return None
|
||||
|
||||
|
||||
def delete_property(self, property_name: str) -> None:
|
||||
"""
|
||||
Deletes a property from the global settings file
|
||||
"""
|
||||
if Path(self.global_settings_plist).exists():
|
||||
try:
|
||||
plist = plistlib.load(Path(self.global_settings_plist).open("rb"))
|
||||
except Exception as e:
|
||||
logging.error("Error: Unable to read global settings file")
|
||||
logging.error(e)
|
||||
return
|
||||
if property_name in plist:
|
||||
del plist[property_name]
|
||||
try:
|
||||
plistlib.dump(plist, Path(self.global_settings_plist).open("wb"))
|
||||
except PermissionError:
|
||||
logging.info("Failed to write to global settings")
|
||||
|
||||
|
||||
def write_property(self, property_name: str, property_value) -> None:
|
||||
"""
|
||||
Writes a property to the global settings file
|
||||
|
||||
Reference in New Issue
Block a user