24 lines
673 B
Python
24 lines
673 B
Python
from dataclasses import dataclass
|
|
|
|
from clan_lib.api import API
|
|
from clan_lib.flake import Flake
|
|
from clan_lib.nix_models.clan import InventoryMeta as Meta
|
|
from clan_lib.persist.inventory_store import InventorySnapshot, InventoryStore
|
|
from clan_lib.persist.util import set_value_by_path
|
|
|
|
|
|
@dataclass
|
|
class UpdateOptions:
|
|
flake: Flake
|
|
meta: Meta
|
|
|
|
|
|
@API.register
|
|
def update_clan_meta(options: UpdateOptions) -> InventorySnapshot:
|
|
inventory_store = InventoryStore(options.flake)
|
|
inventory = inventory_store.read()
|
|
set_value_by_path(inventory, "meta", options.meta)
|
|
inventory_store.write(inventory, message="Update clan metadata")
|
|
|
|
return inventory
|