import os from argparse import ArgumentParser # Mainly from ChatGPT def check_pyside_installed(): try: import PySide6 # Replace with PySide2 if using that version return True except ImportError: return False def start_gui(): import gui gui.main(exif_file) def start_tui(): import tui tui.main(exif_file, tui_settings_file) def main(): parser = ArgumentParser(description="Start the Optima35 application.") parser.add_argument("--tui", action="store_true", help="Start in terminal UI mode.") args = parser.parse_args() if args.tui: print("Starting TUI...") start_tui() return # Check OS and start GUI if on Windows if os.name == "nt": print("Detected Windows. Starting GUI...") start_gui() else: # Non-Windows: Check if PySide is installed if check_pyside_installed(): print("PySide detected. Starting GUI...") start_gui() else: print("PySide is not installed. Falling back to TUI...") start_tui() if __name__ == "__main__": if os.path.isfile("config/exif.yaml"): exif_file = "config/exif.yaml" elif os.path.isfile("config/exif_example.yaml"): exif_file = "config/exif_example.yaml" print("Fall back to exif example file...") else: print("Exif file missing, please ensure an exif file exist in config folder (exif.yaml, or exif_example_yaml)\nExiting...") exit() tui_settings_file = "config/tui_settings.yaml" main()