Source code for AutoArchive._infrastructure.utils.os_paths
# os_paths.py
#
# Project: AutoArchive
# License: GNU GPLv3
#
# Copyright (C) 2003 - 2026 Róbert Čerňanský
""":class:`OsPaths`."""
__all__ = ["OsPaths"]
import os
from AutoArchive._infrastructure.utils import Utils
[docs]
class OsPaths:
"""Provides OS-specific paths"""
__APP_NAME = "AutoArchive"
__SHORT_APP_NAME = "aa"
__WIN_APPDATA = os.path.join(os.getenv("APPDATA", default = os.path.expanduser("~")), __APP_NAME)
[docs]
@classmethod
def getUserConfigDir(cls) -> str:
if Utils.isWindows():
return os.path.join(cls.__WIN_APPDATA, "config")
else:
xdgConfigHome = os.getenv("XDG_CONFIG_HOME", default = os.path.expanduser("~/.config"))
return os.path.join(xdgConfigHome, cls.__SHORT_APP_NAME)
[docs]
@classmethod
def getSystemConfigDir(cls) -> str:
if Utils.isWindows():
return os.path.join(os.getenv("ProgramData", default = r"C:\ProgramData"), cls.__APP_NAME)
else:
return os.path.join("/etc", cls.__SHORT_APP_NAME)
[docs]
@classmethod
def getUserDataDir(cls) -> str:
if Utils.isWindows():
return os.path.join(cls.__WIN_APPDATA, "data")
else:
xdgDataHome = os.getenv("XDG_DATA_HOME", default = os.path.expanduser("~/.local/share"))
return os.path.join(xdgDataHome, cls.__SHORT_APP_NAME)