Skip to content

Commit 28f7aec

Browse files
authored
Refactor mirror_list_handler to use DI (archlinux#4170)
1 parent a025c79 commit 28f7aec

File tree

5 files changed

+214
-177
lines changed

5 files changed

+214
-177
lines changed

archinstall/lib/global_menu.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from .interactions.system_conf import ask_for_swap, select_kernel
2626
from .locale.locale_menu import LocaleMenu
2727
from .menu.abstract_menu import CONFIG_KEY, AbstractMenu
28-
from .mirrors import MirrorMenu
28+
from .mirrors import MirrorListHandler, MirrorMenu
2929
from .models.bootloader import Bootloader, BootloaderConfiguration
3030
from .models.locale import LocaleConfiguration
3131
from .models.mirrors import MirrorConfiguration
@@ -38,8 +38,14 @@
3838

3939

4040
class GlobalMenu(AbstractMenu[None]):
41-
def __init__(self, arch_config: ArchConfig, title: str | None = None) -> None:
41+
def __init__(
42+
self,
43+
arch_config: ArchConfig,
44+
mirror_list_handler: MirrorListHandler | None = None,
45+
title: str | None = None,
46+
) -> None:
4247
self._arch_config = arch_config
48+
self._mirror_list_handler = mirror_list_handler
4349
menu_options = self._get_menu_options()
4450

4551
self._item_group = MenuItemGroup(
@@ -550,7 +556,12 @@ def _select_additional_packages(self, preset: list[str]) -> list[str]:
550556
return packages
551557

552558
def _mirror_configuration(self, preset: MirrorConfiguration | None = None) -> MirrorConfiguration | None:
553-
mirror_configuration = MirrorMenu(preset=preset).run()
559+
if self._mirror_list_handler is not None:
560+
mirror_list_handler = self._mirror_list_handler
561+
else:
562+
mirror_list_handler = MirrorListHandler()
563+
564+
mirror_configuration = MirrorMenu(mirror_list_handler, preset=preset).run()
554565

555566
if mirror_configuration and mirror_configuration.optional_repositories:
556567
# reset the package list cache in case the repository selection has changed

archinstall/lib/installer.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
from .hardware import SysInfo
4343
from .locale.utils import verify_keyboard_layout, verify_x11_keyboard_layout
4444
from .luks import Luks2
45+
from .mirrors import MirrorListHandler
4546
from .models.bootloader import Bootloader
4647
from .models.locale import LocaleConfiguration
4748
from .models.mirrors import MirrorConfiguration
@@ -528,6 +529,7 @@ def post_install_check(self, *args: str, **kwargs: str) -> list[str]:
528529

529530
def set_mirrors(
530531
self,
532+
mirror_list_handler: MirrorListHandler,
531533
mirror_config: MirrorConfiguration,
532534
on_target: bool = False,
533535
) -> None:
@@ -558,7 +560,7 @@ def set_mirrors(
558560
with open(pacman_config, 'a') as fp:
559561
fp.write(repositories_config)
560562

561-
regions_config = mirror_config.regions_config(speed_sort=True)
563+
regions_config = mirror_config.regions_config(mirror_list_handler, speed_sort=True)
562564
if regions_config:
563565
debug(f'Mirrorlist:\n{regions_config}')
564566
mirrorlist_config.write_text(regions_config)

0 commit comments

Comments
 (0)