Skip to content

Commit 45a694d

Browse files
committed
Refactor skip_boot to use dependency injection
1 parent b5f7104 commit 45a694d

4 files changed

Lines changed: 18 additions & 13 deletions

File tree

archinstall/lib/bootloader/bootloader_menu.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
77
from archinstall.tui.ui.result import ResultType
88

9-
from ..args import arch_config_handler
109
from ..hardware import SysInfo
1110
from ..menu.abstract_menu import AbstractSubMenu
1211
from ..models.bootloader import Bootloader, BootloaderConfiguration
@@ -16,8 +15,10 @@ class BootloaderMenu(AbstractSubMenu[BootloaderConfiguration]):
1615
def __init__(
1716
self,
1817
bootloader_conf: BootloaderConfiguration,
18+
skip_boot: bool = False,
1919
):
2020
self._bootloader_conf = bootloader_conf
21+
self._skip_boot = skip_boot
2122
menu_options = self._define_menu_options()
2223

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

9394
def _select_bootloader(self, preset: Bootloader | None) -> Bootloader | None:
94-
bootloader = select_bootloader(preset)
95+
bootloader = select_bootloader(preset, self._skip_boot)
9596

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

179180

180-
def select_bootloader(preset: Bootloader | None) -> Bootloader | None:
181+
def select_bootloader(
182+
preset: Bootloader | None,
183+
skip_boot: bool = False,
184+
) -> Bootloader | None:
181185
options = []
182186
hidden_options = []
183187
default = None
184188
header = tr('Select bootloader to install')
185189

186-
if arch_config_handler.args.skip_boot:
190+
if skip_boot:
187191
default = Bootloader.NO_BOOTLOADER
188192
else:
189193
hidden_options += [Bootloader.NO_BOOTLOADER]

archinstall/lib/global_menu.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,12 @@ def __init__(
4141
self,
4242
arch_config: ArchConfig,
4343
mirror_list_handler: MirrorListHandler | None = None,
44+
skip_boot: bool = False,
4445
title: str | None = None,
4546
) -> None:
4647
self._arch_config = arch_config
4748
self._mirror_list_handler = mirror_list_handler
49+
self._skip_boot = skip_boot
4850
menu_options = self._get_menu_options()
4951

5052
self._item_group = MenuItemGroup(
@@ -92,7 +94,7 @@ def _get_menu_options(self) -> list[MenuItem]:
9294
),
9395
MenuItem(
9496
text=tr('Bootloader'),
95-
value=BootloaderConfiguration.get_default(),
97+
value=BootloaderConfiguration.get_default(self._skip_boot),
9698
action=self._select_bootloader_config,
9799
preview_action=self._prev_bootloader_config,
98100
key='bootloader_config',
@@ -528,9 +530,9 @@ def _select_bootloader_config(
528530
preset: BootloaderConfiguration | None = None,
529531
) -> BootloaderConfiguration | None:
530532
if preset is None:
531-
preset = BootloaderConfiguration.get_default()
533+
preset = BootloaderConfiguration.get_default(self._skip_boot)
532534

533-
bootloader_config = BootloaderMenu(preset).run()
535+
bootloader_config = BootloaderMenu(preset, self._skip_boot).run()
534536

535537
return bootloader_config
536538

archinstall/lib/models/bootloader.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,8 @@ def json(self) -> str:
3131
return self.value
3232

3333
@classmethod
34-
def get_default(cls) -> Self:
35-
from ..args import arch_config_handler
36-
37-
if arch_config_handler.args.skip_boot:
34+
def get_default(cls, skip_boot: bool = False) -> Self:
35+
if skip_boot:
3836
return cls.NO_BOOTLOADER
3937
elif SysInfo.has_uefi():
4038
return cls.Systemd
@@ -73,8 +71,8 @@ def parse_arg(cls, config: dict[str, Any], skip_boot: bool) -> Self:
7371
return cls(bootloader=bootloader, uki=uki, removable=removable)
7472

7573
@classmethod
76-
def get_default(cls) -> Self:
77-
bootloader = Bootloader.get_default()
74+
def get_default(cls, skip_boot: bool = False) -> Self:
75+
bootloader = Bootloader.get_default(skip_boot)
7876
removable = SysInfo.has_uefi() and bootloader.has_removable_support()
7977
uki = SysInfo.has_uefi() and bootloader.has_uki_support()
8078
return cls(bootloader=bootloader, uki=uki, removable=removable)

archinstall/scripts/guided.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def show_menu(mirror_list_handler: MirrorListHandler) -> None:
3737
global_menu = GlobalMenu(
3838
arch_config_handler.config,
3939
mirror_list_handler,
40+
arch_config_handler.args.skip_boot,
4041
title=title_text,
4142
)
4243

0 commit comments

Comments
 (0)