from clan_lib.api import API from clan_lib.errors import ClanError from clan_lib.flake import Flake from clan_lib.nix_models.clan import InventoryMeta as Meta from clan_lib.persist.inventory_store import InventoryStore @API.register def show_clan_meta(flake: Flake) -> Meta: if flake.is_local and not flake.path.exists(): msg = f"Path {flake} does not exist" raise ClanError(msg, description="clan directory does not exist") inventory_store = InventoryStore(flake) inventory = inventory_store.read() meta = inventory.get("meta") if not meta: msg = f"Inventory of flake '{flake}' does not have a meta attribute" raise ClanError(msg) return meta