diff --git a/pkgs/clan-cli/clan_cli/backups/create.py b/pkgs/clan-cli/clan_cli/backups/create.py index 7a2018c1..eb5eb0e8 100644 --- a/pkgs/clan-cli/clan_cli/backups/create.py +++ b/pkgs/clan-cli/clan_cli/backups/create.py @@ -2,7 +2,11 @@ import argparse import json import logging -from ..completions import add_dynamic_completer, complete_machines +from ..completions import ( + add_dynamic_completer, + complete_backup_providers_for_machine, + complete_machines, +) from ..errors import ClanError from ..machines.machines import Machine @@ -46,5 +50,8 @@ def register_create_parser(parser: argparse.ArgumentParser) -> None: ) add_dynamic_completer(machines_parser, complete_machines) - parser.add_argument("--provider", type=str, help="backup provider to use") + provider_action = parser.add_argument( + "--provider", type=str, help="backup provider to use" + ) + add_dynamic_completer(provider_action, complete_backup_providers_for_machine) parser.set_defaults(func=create_command) diff --git a/pkgs/clan-cli/clan_cli/backups/list.py b/pkgs/clan-cli/clan_cli/backups/list.py index 9c466070..a7eab3b9 100644 --- a/pkgs/clan-cli/clan_cli/backups/list.py +++ b/pkgs/clan-cli/clan_cli/backups/list.py @@ -3,7 +3,11 @@ import json import subprocess from dataclasses import dataclass -from ..completions import add_dynamic_completer, complete_machines +from ..completions import ( + add_dynamic_completer, + complete_backup_providers_for_machine, + complete_machines, +) from ..errors import ClanError from ..machines.machines import Machine @@ -62,5 +66,8 @@ def register_list_parser(parser: argparse.ArgumentParser) -> None: "machine", type=str, help="machine in the flake to show backups of" ) add_dynamic_completer(machines_parser, complete_machines) - parser.add_argument("--provider", type=str, help="backup provider to filter by") + provider_action = parser.add_argument( + "--provider", type=str, help="backup provider to filter by" + ) + add_dynamic_completer(provider_action, complete_backup_providers_for_machine) parser.set_defaults(func=list_command) diff --git a/pkgs/clan-cli/clan_cli/backups/restore.py b/pkgs/clan-cli/clan_cli/backups/restore.py index 5981e072..31b8cb86 100644 --- a/pkgs/clan-cli/clan_cli/backups/restore.py +++ b/pkgs/clan-cli/clan_cli/backups/restore.py @@ -2,6 +2,11 @@ import argparse import json import subprocess +from ..completions import ( + add_dynamic_completer, + complete_backup_providers_for_machine, + complete_machines, +) from ..errors import ClanError from ..machines.machines import Machine @@ -74,10 +79,14 @@ def restore_command(args: argparse.Namespace) -> None: def register_restore_parser(parser: argparse.ArgumentParser) -> None: - parser.add_argument( + machine_action = parser.add_argument( "machine", type=str, help="machine in the flake to create backups of" ) - parser.add_argument("provider", type=str, help="backup provider to use") + add_dynamic_completer(machine_action, complete_machines) + provider_action = parser.add_argument( + "provider", type=str, help="backup provider to use" + ) + add_dynamic_completer(provider_action, complete_backup_providers_for_machine) parser.add_argument("name", type=str, help="Name of the backup to restore") parser.add_argument("--service", type=str, help="name of the service to restore") parser.set_defaults(func=restore_command)