from pathlib import Path from clan_lib.flake import Flake from clan_lib.nix import ( nix_command, run, ) def realize_nix_path(clan_dir: Flake, nix_path: str) -> None: """ Downloads / realizes a nix path into the nix store """ if Path(nix_path).exists(): return cmd = [ "flake", "prefetch", "--inputs-from", clan_dir.identifier, "--option", "flake-registry", "", nix_path, ] run(nix_command(cmd)) def copy_from_nixstore(src: Path, dest: Path) -> None: """ Copy a directory from the nix store to a destination path. Uses `cp -r` to recursively copy the directory. Ensures the destination directory is writable by the user. """ run(["cp", "-r", str(src), str(dest)]) run(["chmod", "-R", "u+w", str(dest)])