index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | archinstall/lib/general.py | 4 | ||||
-rw-r--r-- | archinstall/lib/installer.py | 3 | ||||
-rw-r--r-- | archinstall/lib/user_interaction.py | 19 |
diff --git a/archinstall/lib/general.py b/archinstall/lib/general.py index 249c7890..3b62c891 100644 --- a/archinstall/lib/general.py +++ b/archinstall/lib/general.py @@ -333,6 +333,10 @@ class SysCommand: while self.session.ended is None: self.session.poll() + if self.peak_output: + sys.stdout.write('\n') + sys.stdout.flush() + except SysCallError: return False diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index 29b3bc1a..1be398e9 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -453,6 +453,7 @@ class Installer: self.pacstrap('efibootmgr') o = b''.join(SysCommand(f'/usr/bin/arch-chroot {self.target} grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB')) SysCommand('/usr/bin/arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg') + self.helper_flags['bootloder'] = True return True else: root_device = subprocess.check_output(f'basename "$(readlink -f /sys/class/block/{root_partition.path.replace("/dev/", "")}/..)"', shell=True).decode().strip() @@ -460,7 +461,7 @@ class Installer: root_device = f"{root_partition.path}" o = b''.join(SysCommand(f'/usr/bin/arch-chroot {self.target} grub-install --target=i386-pc /dev/{root_device}')) SysCommand('/usr/bin/arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg') - self.helper_flags['bootloader'] = bootloader + self.helper_flags['bootloader'] = True return True else: raise RequirementError(f"Unknown (or not yet implemented) bootloader requested: {bootloader}") diff --git a/archinstall/lib/user_interaction.py b/archinstall/lib/user_interaction.py index 50c62aa9..0a4cd0f9 100644 --- a/archinstall/lib/user_interaction.py +++ b/archinstall/lib/user_interaction.py @@ -17,7 +17,7 @@ from .hardware import AVAILABLE_GFX_DRIVERS, has_uefi from .locale_helpers import list_keyboard_languages, verify_keyboard_layout, search_keyboard_layout from .networking import list_interfaces from .output import log -from .profiles import Profile +from .profiles import Profile, list_profiles # TODO: Some inconsistencies between the selection processes. @@ -563,28 +563,25 @@ def select_disk(dict_o_disks): raise DiskError('select_disk() requires a non-empty dictionary of disks to select from.') -def select_profile(options): +def select_profile(): """ - Asks the user to select a profile from the `options` dictionary parameter. - Usually this is combined with :ref:`archinstall.list_profiles`. - - :param options: A `dict` where keys are the profile name, value should be a dict containing profile information. - :type options: dict + Asks the user to select a profile from the available profiles. :return: The name/dictionary key of the selected profile :rtype: str """ - profiles = sorted(list(options)) + shown_profiles = sorted(list(list_profiles(filter_top_level_profiles=True))) + actual_profiles_raw = shown_profiles + sorted([profile for profile in list_profiles() if profile not in shown_profiles]) - if len(profiles) >= 1: - for index, profile in enumerate(profiles): + if len(shown_profiles) >= 1: + for index, profile in enumerate(shown_profiles): print(f"{index}: {profile}") print(' -- The above list is a set of pre-programmed profiles. --') print(' -- They might make it easier to install things like desktop environments. --') print(' -- (Leave blank and hit enter to skip this step and continue) --') - selected_profile = generic_select(profiles, 'Enter a pre-programmed profile name if you want to install one: ', options_output=False) + selected_profile = generic_select(actual_profiles_raw, 'Enter a pre-programmed profile name if you want to install one: ', options_output=False) if selected_profile: return Profile(None, selected_profile) else: |