From 876463d7c59ec8c5a9a3186ef922468eed483847 Mon Sep 17 00:00:00 2001 From: Szymon Jozef Date: Sun, 15 Feb 2026 13:06:41 +0100 Subject: [PATCH] Added xdg-compliant path for Linux and macOS --- zut_app/config.py | 19 +++++++++++++++++++ zut_app/zut_client.py | 10 ++++------ zut_app/zutui.py | 8 ++------ 3 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 zut_app/config.py diff --git a/zut_app/config.py b/zut_app/config.py new file mode 100644 index 0000000..da59402 --- /dev/null +++ b/zut_app/config.py @@ -0,0 +1,19 @@ +import os +import platform + +USER_HOME = os.path.expanduser("~") +WINDOWS_PATH = "zutui" # probably should be in %AppData% or something, but I'm not sure, so I won't change it +LINUX_PATH = ".config/zutui" + +def get_config_path(): + system = platform.system() + if system == "Windows": + APP_DIR = os.path.join(USER_HOME, WINDOWS_PATH) + elif system in ["Linux", "Darwin"]: + APP_DIR = os.path.join(USER_HOME, LINUX_PATH) + else: + print(f"System {system} not supported, aborting...") + exit(1) + if not os.path.exists(APP_DIR): + os.makedirs(APP_DIR) + return APP_DIR diff --git a/zut_app/zut_client.py b/zut_app/zut_client.py index 949d43d..e097633 100644 --- a/zut_app/zut_client.py +++ b/zut_app/zut_client.py @@ -1,16 +1,14 @@ - import requests from bs4 import BeautifulSoup import json import os -USER_HOME = os.path.expanduser("~") -APP_DIR = os.path.join(USER_HOME, "zutui") -if not os.path.exists(APP_DIR): - os.makedirs(APP_DIR) +from .config import get_config_path + +APP_DIR = get_config_path() CACHE_FILE = os.path.join(APP_DIR, "grades_cache.json") -TIMEOUT = 10 +TIMEOUT = 10 class ZUT: URLS = { diff --git a/zut_app/zutui.py b/zut_app/zutui.py index 66803b3..6c25d68 100644 --- a/zut_app/zutui.py +++ b/zut_app/zutui.py @@ -1,7 +1,5 @@ - import json import os -import time from datetime import datetime from textual.app import App, ComposeResult from textual.containers import Container @@ -10,11 +8,9 @@ from textual.screen import Screen from textual.binding import Binding from .zut_client import ZUT +from .config import get_config_path -USER_HOME = os.path.expanduser("~") -APP_DIR = os.path.join(USER_HOME, "zutui") -if not os.path.exists(APP_DIR): - os.makedirs(APP_DIR) +APP_DIR = get_config_path() CONFIG_FILE = os.path.join(APP_DIR, "config.json") REFRESH_INTERVAL = 1800