From f927fb6e6a17123c05c6595bbdb45ed771596ab9 Mon Sep 17 00:00:00 2001 From: Daniel Girtler Date: Fri, 8 Mar 2024 00:43:16 +1100 Subject: Fix 2307 - Custom mirrors (#2350) * Fix 2307 - Custom mirrors * Update --- archinstall/lib/installer.py | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) (limited to 'archinstall/lib/installer.py') diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index 443e2b90..8a2dde5f 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -15,7 +15,7 @@ from .hardware import SysInfo from .locale import LocaleConfiguration from .locale import verify_keyboard_layout, verify_x11_keyboard_layout from .luks import Luks2 -from .mirrors import use_mirrors, MirrorConfiguration, add_custom_mirrors +from .mirrors import MirrorConfiguration from .models.bootloader import Bootloader from .models.network_configuration import Nic from .models.users import User @@ -318,17 +318,44 @@ class Installer: def post_install_check(self, *args: str, **kwargs: str) -> List[str]: return [step for step, flag in self.helper_flags.items() if flag is False] - def set_mirrors(self, mirror_config: MirrorConfiguration): + def set_mirrors(self, mirror_config: MirrorConfiguration, on_target: bool = False): + """ + Set the mirror configuration for the installation. + + :param mirror_config: The mirror configuration to use. + :type mirror_config: MirrorConfiguration + + :on_target: Whether to set the mirrors on the target system or the live system. + :param on_target: bool + """ + debug('Setting mirrors') + for plugin in plugins.values(): if hasattr(plugin, 'on_mirrors'): if result := plugin.on_mirrors(mirror_config): mirror_config = result - destination = f'{self.target}/etc/pacman.d/mirrorlist' - if mirror_config.mirror_regions: - use_mirrors(mirror_config.mirror_regions, destination) - if mirror_config.custom_mirrors: - add_custom_mirrors(mirror_config.custom_mirrors) + if on_target: + local_pacman_conf = Path(f'{self.target}/etc/pacman.conf') + local_mirrorlist_conf = Path(f'{self.target}/etc/pacman.d/mirrorlist') + else: + local_pacman_conf = Path('/etc/pacman.conf') + local_mirrorlist_conf = Path('/etc/pacman.d/mirrorlist') + + mirrorlist_config = mirror_config.mirrorlist_config() + pacman_config = mirror_config.pacman_config() + + if pacman_config: + debug(f'Pacman config: {pacman_config}') + + with local_pacman_conf.open('a') as fp: + fp.write(pacman_config) + + if mirrorlist_config: + debug(f'Mirrorlist: {mirrorlist_config}') + + with local_mirrorlist_conf.open('a') as fp: + fp.write(mirrorlist_config) def genfstab(self, flags: str = '-pU'): fstab_path = self.target / "etc" / "fstab" -- cgit v1.2.3-54-g00ecf