From d4fabff7f42d4a659fc2111aa9f00f5cc45a73c3 Mon Sep 17 00:00:00 2001 From: a-kenji Date: Tue, 4 Jun 2024 13:28:08 +0200 Subject: [PATCH] clan: add dynamic completions for secret groups --- pkgs/clan-cli/clan_cli/completions.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/pkgs/clan-cli/clan_cli/completions.py b/pkgs/clan-cli/clan_cli/completions.py index 80ffde76a..0fd4663b0 100644 --- a/pkgs/clan-cli/clan_cli/completions.py +++ b/pkgs/clan-cli/clan_cli/completions.py @@ -165,6 +165,28 @@ def complete_users( return users_dict +def complete_groups( + prefix: str, parsed_args: argparse.Namespace, **kwargs: Any +) -> Iterable[str]: + """ + Provides completion functionality for clan groups + """ + from pathlib import Path + + from .secrets.groups import list_groups + + if (clan_dir_result := clan_dir(None)) is not None: + flake = clan_dir_result + else: + flake = "." + + groups_list = list_groups(Path(flake)) + groups = [group.name for group in groups_list] + + groups_dict = {name: "group" for name in groups} + return groups_dict + + def add_dynamic_completer( action: argparse.Action, completer: Callable[..., Iterable[str]],