Files
clan-core/pkgs/clan-cli/clan_cli/backups/create.py
a-kenji 6347bb7f3a pkgs/clan: Further unify clan flake validation
Further unify clan flake validation and improve test coverage.
2025-07-15 13:03:49 +02:00

34 lines
1.0 KiB
Python

import argparse
import logging
from clan_lib.backups.create import create_backup
from clan_lib.flake import require_flake
from clan_lib.machines.machines import Machine
from clan_cli.completions import (
add_dynamic_completer,
complete_backup_providers_for_machine,
complete_machines,
)
log = logging.getLogger(__name__)
def create_command(args: argparse.Namespace) -> None:
flake = require_flake(args.flake)
machine = Machine(name=args.machine, flake=flake)
create_backup(machine=machine, provider=args.provider)
def register_create_parser(parser: argparse.ArgumentParser) -> None:
machines_parser = parser.add_argument(
"machine", type=str, help="machine in the flake to create backups of"
)
add_dynamic_completer(machines_parser, 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.set_defaults(func=create_command)