Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions archinstall/lib/bootloader/bootloader_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType

from ..args import arch_config_handler
from ..hardware import SysInfo
from ..menu.abstract_menu import AbstractSubMenu
from ..models.bootloader import Bootloader, BootloaderConfiguration
Expand All @@ -16,8 +15,10 @@ class BootloaderMenu(AbstractSubMenu[BootloaderConfiguration]):
def __init__(
self,
bootloader_conf: BootloaderConfiguration,
skip_boot: bool = False,
):
self._bootloader_conf = bootloader_conf
self._skip_boot = skip_boot
menu_options = self._define_menu_options()

self._item_group = MenuItemGroup(menu_options, sort_items=False, checkmarks=True)
Expand Down Expand Up @@ -91,7 +92,7 @@ def run(self) -> BootloaderConfiguration:
return self._bootloader_conf

def _select_bootloader(self, preset: Bootloader | None) -> Bootloader | None:
bootloader = select_bootloader(preset)
bootloader = select_bootloader(preset, self._skip_boot)

if bootloader:
# Update UKI option based on bootloader
Expand Down Expand Up @@ -177,13 +178,16 @@ def _select_removable(self, preset: bool) -> bool:
raise ValueError('Unhandled result type')


def select_bootloader(preset: Bootloader | None) -> Bootloader | None:
def select_bootloader(
preset: Bootloader | None,
skip_boot: bool = False,
) -> Bootloader | None:
options = []
hidden_options = []
default = None
header = tr('Select bootloader to install')

if arch_config_handler.args.skip_boot:
if skip_boot:
default = Bootloader.NO_BOOTLOADER
else:
hidden_options += [Bootloader.NO_BOOTLOADER]
Expand Down
8 changes: 5 additions & 3 deletions archinstall/lib/global_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,12 @@ def __init__(
self,
arch_config: ArchConfig,
mirror_list_handler: MirrorListHandler | None = None,
skip_boot: bool = False,
title: str | None = None,
) -> None:
self._arch_config = arch_config
self._mirror_list_handler = mirror_list_handler
self._skip_boot = skip_boot
menu_options = self._get_menu_options()

self._item_group = MenuItemGroup(
Expand Down Expand Up @@ -92,7 +94,7 @@ def _get_menu_options(self) -> list[MenuItem]:
),
MenuItem(
text=tr('Bootloader'),
value=BootloaderConfiguration.get_default(),
value=BootloaderConfiguration.get_default(self._skip_boot),
action=self._select_bootloader_config,
preview_action=self._prev_bootloader_config,
key='bootloader_config',
Expand Down Expand Up @@ -528,9 +530,9 @@ def _select_bootloader_config(
preset: BootloaderConfiguration | None = None,
) -> BootloaderConfiguration | None:
if preset is None:
preset = BootloaderConfiguration.get_default()
preset = BootloaderConfiguration.get_default(self._skip_boot)

bootloader_config = BootloaderMenu(preset).run()
bootloader_config = BootloaderMenu(preset, self._skip_boot).run()

return bootloader_config

Expand Down
10 changes: 4 additions & 6 deletions archinstall/lib/models/bootloader.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,8 @@ def json(self) -> str:
return self.value

@classmethod
def get_default(cls) -> Self:
from ..args import arch_config_handler

if arch_config_handler.args.skip_boot:
def get_default(cls, skip_boot: bool = False) -> Self:
if skip_boot:
return cls.NO_BOOTLOADER
elif SysInfo.has_uefi():
return cls.Systemd
Expand Down Expand Up @@ -73,8 +71,8 @@ def parse_arg(cls, config: dict[str, Any], skip_boot: bool) -> Self:
return cls(bootloader=bootloader, uki=uki, removable=removable)

@classmethod
def get_default(cls) -> Self:
bootloader = Bootloader.get_default()
def get_default(cls, skip_boot: bool = False) -> Self:
bootloader = Bootloader.get_default(skip_boot)
removable = SysInfo.has_uefi() and bootloader.has_removable_support()
uki = SysInfo.has_uefi() and bootloader.has_uki_support()
return cls(bootloader=bootloader, uki=uki, removable=removable)
Expand Down
1 change: 1 addition & 0 deletions archinstall/scripts/guided.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ def show_menu(mirror_list_handler: MirrorListHandler) -> None:
global_menu = GlobalMenu(
arch_config_handler.config,
mirror_list_handler,
arch_config_handler.args.skip_boot,
title=title_text,
)

Expand Down