mirror of
https://git.launchpad.net/livecd-rootfs
synced 2026-02-17 15:33:32 +00:00
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
"""Boot configuration package for ISO builder.
|
|
|
|
This package contains architecture-specific boot configurators for building
|
|
bootable ISOs for different architectures.
|
|
"""
|
|
|
|
import pathlib
|
|
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
from ..apt_state import AptStateManager
|
|
from ..builder import Logger
|
|
from .base import BaseBootConfigurator
|
|
|
|
|
|
def make_boot_configurator_for_arch(
|
|
arch: str,
|
|
logger: "Logger",
|
|
apt_state: "AptStateManager",
|
|
iso_root: pathlib.Path,
|
|
) -> "BaseBootConfigurator":
|
|
"""Factory function to create boot configurator for a specific architecture."""
|
|
match arch:
|
|
case "amd64":
|
|
from .amd64 import AMD64BootConfigurator
|
|
|
|
return AMD64BootConfigurator(logger, apt_state, iso_root)
|
|
case "arm64":
|
|
from .arm64 import ARM64BootConfigurator
|
|
|
|
return ARM64BootConfigurator(logger, apt_state, iso_root)
|
|
case "ppc64el":
|
|
from .ppc64el import PPC64ELBootConfigurator
|
|
|
|
return PPC64ELBootConfigurator(logger, apt_state, iso_root)
|
|
case "riscv64":
|
|
from .riscv64 import RISCV64BootConfigurator
|
|
|
|
return RISCV64BootConfigurator(logger, apt_state, iso_root)
|
|
case "s390x":
|
|
from .s390x import S390XBootConfigurator
|
|
|
|
return S390XBootConfigurator(logger, apt_state, iso_root)
|
|
case _:
|
|
raise ValueError(f"Unsupported architecture: {arch}")
|
|
|
|
|
|
__all__ = ["make_boot_configurator_for_arch"]
|