From 3e1dbd5fbdbf8d74117828485357fe540b16f8ac Mon Sep 17 00:00:00 2001 From: a-kenji Date: Tue, 4 Jun 2024 15:44:39 +0200 Subject: [PATCH 1/3] clan: add dynamic completions to `clan config` --- pkgs/clan-cli/clan_cli/config/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/clan-cli/clan_cli/config/__init__.py b/pkgs/clan-cli/clan_cli/config/__init__.py index de16f4047..baf69d7cd 100644 --- a/pkgs/clan-cli/clan_cli/config/__init__.py +++ b/pkgs/clan-cli/clan_cli/config/__init__.py @@ -8,6 +8,7 @@ import sys from pathlib import Path from typing import Any, get_origin +from clan_cli.completions import add_dynamic_completer, complete_machines from clan_cli.cmd import run from clan_cli.dirs import machine_settings_file from clan_cli.errors import ClanError @@ -317,13 +318,14 @@ def register_parser( # inject callback function to process the input later parser.set_defaults(func=get_option) - parser.add_argument( + set_machine_action = parser.add_argument( "--machine", "-m", help="Machine to configure", type=str, default="default", ) + add_dynamic_completer(set_machine_action, complete_machines) parser.add_argument( "--show-trace", From 96f0ed1a8ff77728cab7f538b9f7df2a49b5f70a Mon Sep 17 00:00:00 2001 From: a-kenji Date: Tue, 4 Jun 2024 15:48:12 +0200 Subject: [PATCH 2/3] clan: add dynamic completions to `clan vms run` --- pkgs/clan-cli/clan_cli/vms/run.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/clan-cli/clan_cli/vms/run.py b/pkgs/clan-cli/clan_cli/vms/run.py index db4f10df2..9153d1922 100644 --- a/pkgs/clan-cli/clan_cli/vms/run.py +++ b/pkgs/clan-cli/clan_cli/vms/run.py @@ -7,6 +7,7 @@ from contextlib import ExitStack from pathlib import Path from tempfile import TemporaryDirectory +from ..completions import add_dynamic_completer, complete_machines from ..cmd import Log, run from ..dirs import module_root, user_cache_dir, vm_state_dir from ..errors import ClanError @@ -205,5 +206,8 @@ def run_command( def register_run_parser(parser: argparse.ArgumentParser) -> None: - parser.add_argument("machine", type=str, help="machine in the flake to run") + machine_action = parser.add_argument( + "machine", type=str, help="machine in the flake to run" + ) + add_dynamic_completer(machine_action, complete_machines) parser.set_defaults(func=lambda args: run_command(**args.__dict__)) From 3abe4813160d1f327a056a4f4e20a42a87cbb09c Mon Sep 17 00:00:00 2001 From: a-kenji Date: Tue, 4 Jun 2024 15:49:11 +0200 Subject: [PATCH 3/3] clan: add dynamic completions to `clan vms inspect` --- pkgs/clan-cli/clan_cli/config/__init__.py | 2 +- pkgs/clan-cli/clan_cli/vms/inspect.py | 4 +++- pkgs/clan-cli/clan_cli/vms/run.py | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/config/__init__.py b/pkgs/clan-cli/clan_cli/config/__init__.py index baf69d7cd..35505bd8a 100644 --- a/pkgs/clan-cli/clan_cli/config/__init__.py +++ b/pkgs/clan-cli/clan_cli/config/__init__.py @@ -8,8 +8,8 @@ import sys from pathlib import Path from typing import Any, get_origin -from clan_cli.completions import add_dynamic_completer, complete_machines from clan_cli.cmd import run +from clan_cli.completions import add_dynamic_completer, complete_machines from clan_cli.dirs import machine_settings_file from clan_cli.errors import ClanError from clan_cli.git import commit_file diff --git a/pkgs/clan-cli/clan_cli/vms/inspect.py b/pkgs/clan-cli/clan_cli/vms/inspect.py index a09b4361a..fb896cfb3 100644 --- a/pkgs/clan-cli/clan_cli/vms/inspect.py +++ b/pkgs/clan-cli/clan_cli/vms/inspect.py @@ -3,6 +3,7 @@ import json from dataclasses import dataclass from pathlib import Path +from ..completions import add_dynamic_completer, complete_machines from ..machines.machines import Machine @@ -45,5 +46,6 @@ def inspect_command(args: argparse.Namespace) -> None: def register_inspect_parser(parser: argparse.ArgumentParser) -> None: - parser.add_argument("machine", type=str, default="defaultVM") + machine_action = parser.add_argument("machine", type=str, default="defaultVM") + add_dynamic_completer(machine_action, complete_machines) parser.set_defaults(func=inspect_command) diff --git a/pkgs/clan-cli/clan_cli/vms/run.py b/pkgs/clan-cli/clan_cli/vms/run.py index 9153d1922..3ab19ed1c 100644 --- a/pkgs/clan-cli/clan_cli/vms/run.py +++ b/pkgs/clan-cli/clan_cli/vms/run.py @@ -7,8 +7,8 @@ from contextlib import ExitStack from pathlib import Path from tempfile import TemporaryDirectory -from ..completions import add_dynamic_completer, complete_machines from ..cmd import Log, run +from ..completions import add_dynamic_completer, complete_machines from ..dirs import module_root, user_cache_dir, vm_state_dir from ..errors import ClanError from ..facts.generate import generate_facts