hw-generate: fix args

This commit is contained in:
Jörg Thalheim
2024-08-24 11:30:35 +02:00
parent 6dd73177a3
commit 68e1d023e9

View File

@@ -1,7 +1,7 @@
import argparse import argparse
import dataclasses
import json import json
import logging import logging
from dataclasses import dataclass
from pathlib import Path from pathlib import Path
from typing import Literal from typing import Literal
@@ -19,7 +19,7 @@ from .types import machine_name_type
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@dataclasses.dataclass @dataclass
class HardwareReport: class HardwareReport:
file: Literal["nixos-generate-config", "nixos-facter"] file: Literal["nixos-generate-config", "nixos-facter"]
@@ -202,15 +202,29 @@ def generate_machine_hardware_info(
return HardwareReport("nixos-generate-config") return HardwareReport("nixos-generate-config")
@dataclass
class HardwareGenerateOptions:
flake: FlakeId
machine: str
target_host: str | None
password: str | None
force: bool | None
def hw_generate_command(args: argparse.Namespace) -> None: def hw_generate_command(args: argparse.Namespace) -> None:
hw_info = generate_machine_hardware_info( opts = HardwareGenerateOptions(
args.flake, args.machine, args.hostname, args.password, args.force flake=args.flake,
machine=args.machine,
target_host=args.target_host,
password=args.password,
force=args.force,
)
hw_info = generate_machine_hardware_info(
opts.flake, opts.machine, opts.target_host, opts.password, opts.force
) )
print("----")
print("Successfully generated hardware information.") print("Successfully generated hardware information.")
print(f"Target: {args.machine} ({args.hostname})") print(f"Target: {opts.machine} ({opts.target_host})")
print(f"Type: {hw_info.file}") print(f"Type: {hw_info.file}")
print("----")
def register_hw_generate(parser: argparse.ArgumentParser) -> None: def register_hw_generate(parser: argparse.ArgumentParser) -> None: