Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/lib/global_menu.py
diff options
context:
space:
mode:
Diffstat (limited to 'archinstall/lib/global_menu.py')
-rw-r--r--archinstall/lib/global_menu.py34
1 files changed, 28 insertions, 6 deletions
diff --git a/archinstall/lib/global_menu.py b/archinstall/lib/global_menu.py
index 13595132..fc58a653 100644
--- a/archinstall/lib/global_menu.py
+++ b/archinstall/lib/global_menu.py
@@ -5,6 +5,7 @@ from typing import Any, List, Optional, Union, Dict, TYPE_CHECKING
from . import disk
from .general import secret
from .menu import Selector, AbstractMenu
+from .mirrors import MirrorConfiguration, MirrorMenu
from .models import NetworkConfiguration
from .models.bootloader import Bootloader
from .models.users import User
@@ -26,7 +27,6 @@ from .interactions import select_kernel
from .interactions import select_language
from .interactions import select_locale_enc
from .interactions import select_locale_lang
-from .interactions import select_mirror_regions
from .interactions import ask_ntp
from .interactions.disk_conf import select_disk_config
@@ -51,12 +51,13 @@ class GlobalMenu(AbstractMenu):
_('Keyboard layout'),
lambda preset: select_language(preset),
default='us')
- self._menu_options['mirror-region'] = \
+ self._menu_options['mirror_config'] = \
Selector(
- _('Mirror region'),
- lambda preset: select_mirror_regions(preset),
- display_func=lambda x: list(x.keys()) if x else '[]',
- default={})
+ _('Mirrors'),
+ lambda preset: self._mirror_configuration(preset),
+ display_func=lambda x: str(_('Defined')) if x else '',
+ preview_func=self._prev_mirror_config
+ )
self._menu_options['sys-language'] = \
Selector(
_('Locale language'),
@@ -354,3 +355,24 @@ class GlobalMenu(AbstractMenu):
def _create_user_account(self, defined_users: List[User]) -> List[User]:
users = ask_for_additional_users(defined_users=defined_users)
return users
+
+ def _mirror_configuration(self, preset: Optional[MirrorConfiguration] = None) -> Optional[MirrorConfiguration]:
+ data_store: Dict[str, Any] = {}
+ mirror_configuration = MirrorMenu(data_store, preset=preset).run()
+ return mirror_configuration
+
+ def _prev_mirror_config(self) -> Optional[str]:
+ selector = self._menu_options['mirror_config']
+
+ if selector.has_selection():
+ mirror_config: MirrorConfiguration = selector.current_selection # type: ignore
+ output = ''
+ if mirror_config.regions:
+ output += '{}: {}\n\n'.format(str(_('Mirror regions')), mirror_config.regions)
+ if mirror_config.custom_mirrors:
+ table = FormattedOutput.as_table(mirror_config.custom_mirrors)
+ output += '{}\n{}'.format(str(_('Custom mirrors')), table)
+
+ return output.strip()
+
+ return None