clan-core/pkgs/clan-cli/clan_cli/dirs.py
Jörg Thalheim 88a2c2656a
All checks were successful
build / test (push) Successful in 12s
get_clan_flake_toplevel: fix check
2023-07-28 12:36:01 +02:00

27 lines
870 B
Python

import os
import sys
from pathlib import Path
from .errors import ClanError
def get_clan_flake_toplevel() -> Path:
"""Returns the path to the toplevel of the clan flake"""
for project_file in [".clan-flake", ".git", ".hg", ".svn", "flake.nix"]:
initial_path = Path(os.getcwd())
path = Path(initial_path)
while path.parent != path:
if (path / project_file).exists():
return path
path = path.parent
raise ClanError("Could not find clan flake toplevel directory")
def user_data_dir() -> Path:
if sys.platform == "win32":
raise NotImplementedError("Windows is not supported")
elif sys.platform == "darwin":
return Path(os.path.expanduser("~/Library/Application Support/"))
else:
return Path(os.getenv("XDG_DATA_HOME", os.path.expanduser("~/.local/share")))