check for new default colors

This commit is contained in:
pdxlocations
2025-01-24 21:38:51 -08:00
parent 4359d37979
commit 659dad493c
3 changed files with 21 additions and 12 deletions
+1
View File
@@ -6,3 +6,4 @@ client.db
client.log
settings.log
config.json
default_config.log
+19 -11
View File
@@ -21,6 +21,18 @@ def format_json_single_line_arrays(data, indent=4):
return format_value(data, indent)
# Recursive function to check and update nested dictionaries
def update_dict(default, actual):
updated = False
for key, value in default.items():
if key not in actual:
actual[key] = value
updated = True
elif isinstance(value, dict):
# Recursively check nested dictionaries
updated = update_dict(value, actual[key]) or updated
return updated
def initialize_config():
app_directory = os.path.dirname(os.path.abspath(__file__))
json_file_path = os.path.join(app_directory, "config.json")
@@ -52,13 +64,13 @@ def initialize_config():
"window_frame_selected": ["green", "black"],
"log_header": ["blue", "black"],
"log": ["green", "black"],
"settings_default": ["white", "black"],
"settings_sensitive": ["red", "black"],
"settings_save": ["green", "black"],
"settings_breadcrumbs": ["white", "black"]
},
}
if not os.path.exists(json_file_path):
with open(json_file_path, "w", encoding="utf-8") as json_file:
formatted_json = format_json_single_line_arrays(default_config_variables)
@@ -69,21 +81,17 @@ def initialize_config():
loaded_config = json.load(json_file)
# Check and add missing variables
updated = False
for key, value in default_config_variables.items():
if key not in loaded_config:
loaded_config[key] = value
updated = True
updated = update_dict(default_config_variables, loaded_config)
# Update the JSON file if any variables were missing
if updated:
with open(json_file_path, "w", encoding="utf-8") as json_file:
json.dump(loaded_config, json_file, indent=4, ensure_ascii=False)
logging.info(f"JSON file updated with missing default variables.")
formatted_json = format_json_single_line_arrays(loaded_config)
with open(json_file_path, "w", encoding="utf-8") as json_file:
json_file.write(formatted_json)
logging.info(f"JSON file updated with missing default variables and COLOR_CONFIG items.")
return loaded_config
# Call the function when the script is imported
loaded_config = initialize_config()
@@ -116,4 +124,4 @@ if __name__ == "__main__":
print(f"ACK String: {ack_str}")
print(f"NAK String: {nak_str}")
print(f"ACK Unknown String: {ack_unknown_str}")
print(f"Color Config: {COLOR_CONFIG}")
print(f"Color Config: {COLOR_CONFIG}")
+1 -1
View File
@@ -44,7 +44,7 @@ def display_menu(current_menu, menu_path, selected_index, show_save_option):
try:
# Use red color for "Reboot" or "Shutdown"
color = get_color("settings_sensitive" if option in sensitive_settings else "default", reverse = (idx == selected_index))
color = get_color("settings_sensitive" if option in sensitive_settings else "settings_default", reverse = (idx == selected_index))
menu_win.addstr(idx + 3, 4, f"{display_option:<{width // 2 - 2}} {display_value}".ljust(width - 8), color)
except curses.error:
pass