Files
A1SwapModPacker/a1_swap_mod_packer/paths.py
T

37 lines
1.0 KiB
Python

from __future__ import annotations
import sys
from pathlib import Path
APP_DIR_NAME = "a1_swap_mod_packer"
SWAP_GCODE_DIR_NAME = "swap_gcode"
PATCH_CONFIG_FILE_NAME = "gcode_patches.ini"
def program_root() -> Path:
compiled = globals().get("__compiled__")
if compiled is not None and getattr(compiled, "onefile", False):
containing_dir = getattr(compiled, "containing_dir", None)
if containing_dir:
return Path(containing_dir).resolve()
original_argv0 = getattr(compiled, "original_argv0", None)
if original_argv0:
return Path(original_argv0).resolve().parent
if getattr(sys, "frozen", False):
return Path(sys.executable).resolve().parent
return Path(__file__).resolve().parents[1]
def default_swap_gcode_dir() -> Path:
return program_root() / SWAP_GCODE_DIR_NAME
def default_patch_config_path() -> Path:
return program_root() / PATCH_CONFIG_FILE_NAME
def user_settings_path() -> Path:
return program_root() / "settings.json"