35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
"""Где лежат данные хаба: каталог, база, резервные копии."""
|
||
import logging
|
||
import os
|
||
from pathlib import Path
|
||
|
||
log = logging.getLogger(__name__)
|
||
|
||
|
||
def home() -> Path:
|
||
return Path(os.environ.get("JIRA_HUB_HOME", str(Path.home() / ".local" / "share" / "jira-hub")))
|
||
|
||
|
||
def db_path() -> Path:
|
||
return home() / "hub.sqlite"
|
||
|
||
|
||
def backups_dir() -> Path:
|
||
return home() / "backups"
|
||
|
||
|
||
def release_root() -> Path:
|
||
"""Корень публикаций агентов: release/<модуль>/agent.py + manifest.json."""
|
||
return home() / "release"
|
||
|
||
|
||
def secure_dir(path: Path) -> None:
|
||
"""Создать каталог и закрыть его владельцу (0700): в базе и копиях лежат токены (M-7). Сбой chmod (каталог чужой) —
|
||
предупреждение, хаб продолжает работу."""
|
||
path = Path(path)
|
||
path.mkdir(parents=True, exist_ok=True)
|
||
try:
|
||
os.chmod(path, 0o700)
|
||
except OSError as e:
|
||
log.warning("каталог %s не закрыт (0700): %s", path, e)
|