Files
clan-core/pkgs/clan-cli/clan_cli/backups/create.py
2025-08-25 11:34:41 +02:00

38 lines
1.1 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)