34 lines
1009 B
Python
34 lines
1009 B
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_dir() -> Path:
|
||
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)
|