clan: add dynamic completions to clan backups providers

This commit is contained in:
a-kenji 2024-06-05 11:17:58 +02:00 committed by kenji
parent b4699cd8a3
commit c9038ad0b3
3 changed files with 29 additions and 6 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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)