chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
"""Paths relative to the FastAPI process working directory (Docker / local dev).
|
||||
|
||||
The API is always started with cwd set to the `servers/fastapi` package root
|
||||
(see start.js), without OS-specific layout handling.
|
||||
|
||||
Packaged Electron builds use cwd under the app install dir (often read-only under
|
||||
``/opt``). Writable caches must use ``APP_DATA_DIRECTORY`` when set (Electron).
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
|
||||
|
||||
def get_resource_path(relative_path: str) -> str:
|
||||
"""Absolute path to bundled read-only assets (e.g. ``static/``, ``assets/``)."""
|
||||
return os.path.abspath(os.path.join(os.getcwd(), relative_path))
|
||||
|
||||
|
||||
def get_writable_path(relative_path: str) -> str:
|
||||
"""Absolute path for caches and generated files; ensures the directory exists."""
|
||||
app_data = (os.getenv("APP_DATA_DIRECTORY") or "").strip()
|
||||
if app_data:
|
||||
base = app_data
|
||||
else:
|
||||
base = os.getcwd()
|
||||
path = os.path.abspath(os.path.join(base, relative_path))
|
||||
os.makedirs(path, exist_ok=True)
|
||||
return path
|
||||
Reference in New Issue
Block a user