image.py: migrate to packages.flavour.get_profile_flavour() for the flavour name

This commit is contained in:
InsanePrawn 2022-09-17 21:12:56 +02:00
parent 4d86962862
commit 02e1b75a79

View file

@ -7,7 +7,7 @@ import click
import logging import logging
from signal import pause from signal import pause
from subprocess import CompletedProcess from subprocess import CompletedProcess
from typing import Optional, Union from typing import Union
from chroot.device import DeviceChroot, get_device_chroot from chroot.device import DeviceChroot, get_device_chroot
from constants import Arch, BASE_PACKAGES, FLAVOURS from constants import Arch, BASE_PACKAGES, FLAVOURS
@ -17,6 +17,7 @@ from exec.cmd import run_root_cmd, generate_cmd_su
from exec.file import root_write_file, root_makedir, makedir from exec.file import root_write_file, root_makedir, makedir
from packages.build import build_enable_qemu_binfmt, build_packages_by_paths from packages.build import build_enable_qemu_binfmt, build_packages_by_paths
from packages.device import Device, get_profile_device from packages.device import Device, get_profile_device
from packages.flavour import Flavour, get_profile_flavour
from ssh import copy_ssh_keys from ssh import copy_ssh_keys
from wrapper import check_programs_wrap, wrap_if_foreign_arch from wrapper import check_programs_wrap, wrap_if_foreign_arch
@ -131,25 +132,21 @@ def losetup_destroy(loop_device):
) )
def get_flavour(profile_name: Optional[str] = None) -> str:
config.enforce_config_loaded()
profile = config.get_profile(profile_name)
if not profile['flavour']:
raise Exception("Please set the flavour using 'kupferbootstrap config init ...'")
return profile['flavour']
def get_device_name(device: Union[str, Device]) -> str: def get_device_name(device: Union[str, Device]) -> str:
return device.name if isinstance(device, Device) else device return device.name if isinstance(device, Device) else device
def get_image_name(device: Union[str, Device], flavour, img_type='full') -> str: def get_flavour_name(flavour: Union[str, Flavour]) -> str:
return f'{get_device_name(device)}-{flavour}-{img_type}.img' if isinstance(flavour, Flavour):
return flavour.name
return flavour
def get_image_path(device: Union[str, Device], flavour, img_type='full') -> str: def get_image_name(device: Union[str, Device], flavour: Union[str, Flavour], img_type='full') -> str:
return f'{get_device_name(device)}-{get_flavour_name(flavour)}-{img_type}.img'
def get_image_path(device: Union[str, Device], flavour: Union[str, Flavour], img_type='full') -> str:
return os.path.join(config.get_path('images'), get_image_name(device, flavour, img_type)) return os.path.join(config.get_path('images'), get_image_name(device, flavour, img_type))
@ -302,15 +299,15 @@ def install_rootfs(
rootfs_device: str, rootfs_device: str,
bootfs_device: str, bootfs_device: str,
device: Union[str, Device], device: Union[str, Device],
flavour: str, flavour: Flavour,
arch: Arch, arch: Arch,
packages: list[str], packages: list[str],
use_local_repos: bool, use_local_repos: bool,
profile: Profile, profile: Profile,
): ):
user = profile['username'] or 'kupfer' user = profile['username'] or 'kupfer'
post_cmds = FLAVOURS[flavour].get('post_cmds', []) post_cmds = FLAVOURS[flavour.name].get('post_cmds', [])
chroot = get_device_chroot(device=get_device_name(device), flavour=flavour, arch=arch, packages=packages, use_local_repos=use_local_repos) chroot = get_device_chroot(device=get_device_name(device), flavour=flavour.name, arch=arch, packages=packages, use_local_repos=use_local_repos)
mount_chroot(rootfs_device, bootfs_device, chroot) mount_chroot(rootfs_device, bootfs_device, chroot)
@ -394,10 +391,10 @@ def cmd_build(profile_name: str = None,
arch = device.arch arch = device.arch
check_programs_wrap(['makepkg', 'pacman', 'pacstrap']) check_programs_wrap(['makepkg', 'pacman', 'pacstrap'])
profile: Profile = config.get_profile(profile_name) profile: Profile = config.get_profile(profile_name)
flavour = get_flavour(profile_name) flavour = get_profile_flavour(profile_name)
size_extra_mb: int = int(profile["size_extra_mb"]) size_extra_mb: int = int(profile["size_extra_mb"])
packages = BASE_PACKAGES + [device.package.name] + FLAVOURS[flavour]['packages'] + profile['pkgs_include'] packages = BASE_PACKAGES + [device.package.name, flavour.pkgbuild.name] + profile['pkgs_include']
if arch != config.runtime.arch: if arch != config.runtime.arch:
build_enable_qemu_binfmt(arch) build_enable_qemu_binfmt(arch)
@ -411,9 +408,9 @@ def cmd_build(profile_name: str = None,
if not sector_size: if not sector_size:
raise Exception(f"Device {device.name} has no flash_pagesize specified") raise Exception(f"Device {device.name} has no flash_pagesize specified")
rootfs_size_mb = FLAVOURS[flavour].get('size', 2) * 1000 rootfs_size_mb = FLAVOURS[flavour.name].get('size', 2) * 1000
image_path = block_target or get_image_path(device, flavour) image_path = block_target or get_image_path(device, flavour.name)
makedir(os.path.dirname(image_path)) makedir(os.path.dirname(image_path))
@ -469,7 +466,7 @@ def cmd_inspect(profile: str = None, shell: bool = False):
device = get_profile_device(profile) device = get_profile_device(profile)
arch = device.arch arch = device.arch
wrap_if_foreign_arch(arch) wrap_if_foreign_arch(arch)
flavour = get_flavour(profile) flavour = get_profile_flavour(profile).name
deviceinfo = device.parse_deviceinfo() deviceinfo = device.parse_deviceinfo()
sector_size = deviceinfo.flash_pagesize sector_size = deviceinfo.flash_pagesize
if not sector_size: if not sector_size: