diff --git a/data b/data new file mode 120000 index 00000000..6320cd24 --- /dev/null +++ b/data @@ -0,0 +1 @@ +data \ No newline at end of file diff --git a/python/utilities/overwrite_config_defaults.py b/python/utilities/overwrite_config_defaults.py new file mode 100644 index 00000000..646b5179 --- /dev/null +++ b/python/utilities/overwrite_config_defaults.py @@ -0,0 +1,33 @@ +# Preserve changes to config by overwriting config.json with config.bak + +import json + + +def recursive_overwrite(config_json, config_bak): + if isinstance(config_bak, dict) or isinstance(config_bak, list): + for key in config_bak: + # The check is repeated because if we pass a leaf to recursive_overwrite + # it is passed by value + if isinstance(config_bak[key], dict) or isinstance(config_bak[key], list): + recursive_overwrite(config_json[key], config_bak[key]) + else: + config_json[key] = config_bak[key] + + + +if __name__ == "__main__": + config_bak = {} + config_json = {} + + with open('config.bak') as file: + config_bak = json.load(file) + + with open('config.json') as file: + config_json = json.load(file) + + recursive_overwrite(config_json, config_bak) + + with open('config.json', 'w') as json_file: + json.dump(config_json, json_file, ensure_ascii=False, indent=4) + + print("Successfully overwrote config.json with your settings.") \ No newline at end of file diff --git a/python/utilities/overwrite_config_defaults.txt b/python/utilities/overwrite_config_defaults.txt new file mode 100644 index 00000000..635b4cd6 --- /dev/null +++ b/python/utilities/overwrite_config_defaults.txt @@ -0,0 +1,29 @@ +General +------- +We are currently in the process of migrating vegastrike.config (old, XML) to config.json (new, JSON). +As a result, the structure of the new file changes regularly and overwrites whatever changes the player has introduced. +As the first thing we ported was the graphics (resolution, monitor), +this requires the player to manually edit the file after every relevant pull. + +Solution +-------- +There is a script, conveniently named overwrite_config_defaults, to do this automatically. +Copy all your changes to config.bak, preserving the relevant structure. + +Example: +If this is your current config.json +"a": { + "b": "modified value", + "c": "unmodified value" +} + +Create config.bak with the following: +"a": { + "b": "modified value" +} + +Place config.bak in the same folder as config.json (currently root of data). +Run the following from root +python3 python/utilities/overwrite_config_defaults + +Your config.json should be updated with your changes. \ No newline at end of file