index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | examples/creds-sample.json | 20 | ||||
-rw-r--r-- | examples/guided.py | 31 | ||||
-rw-r--r-- | examples/minimal.py | 6 | ||||
-rw-r--r-- | examples/swiss.py | 33 |
diff --git a/examples/creds-sample.json b/examples/creds-sample.json index 16aeb8cc..0681e16f 100644 --- a/examples/creds-sample.json +++ b/examples/creds-sample.json @@ -1,9 +1,15 @@ { "!root-password": "<root password>", - "!users": { - "username": {"!password": "<user password>"} - }, - "!superusers": { - "admin": {"!password": "<admin password>"} - } -}
\ No newline at end of file + "!users": [ + { + "username": "<USERNAME>", + "!password": "<PASSWORD>", + "sudo": false + }, + { + "username": "<SUDO_USERNAME>", + "!password": "<PASSWORD>", + "sudo": true + } + ] +} diff --git a/examples/guided.py b/examples/guided.py index 15226668..19b0d638 100644 --- a/examples/guided.py +++ b/examples/guided.py @@ -3,7 +3,7 @@ import os import time import archinstall -from archinstall import ConfigurationOutput +from archinstall import ConfigurationOutput, Menu from archinstall.lib.models.network_configuration import NetworkConfigurationHandler if archinstall.arguments.get('help'): @@ -45,9 +45,8 @@ def ask_user_questions(): # Set which region to download packages from during the installation global_menu.enable('mirror-region') - if archinstall.arguments.get('advanced', False): - global_menu.enable('sys-language', True) - global_menu.enable('sys-encoding', True) + global_menu.enable('sys-language') + global_menu.enable('sys-encoding') # Ask which harddrives/block-devices we will install to # and convert them into archinstall.BlockDevice() objects. @@ -58,6 +57,10 @@ def ask_user_questions(): # Get disk encryption password (or skip if blank) global_menu.enable('!encryption-password') + if archinstall.arguments.get('advanced', False) or archinstall.arguments.get('HSM', None): + # Enables the use of HSM + global_menu.enable('HSM') + # Ask which boot-loader to use (will only ask if we're in UEFI mode, otherwise will default to GRUB) global_menu.enable('bootloader') @@ -69,7 +72,6 @@ def ask_user_questions(): # Ask for a root password (optional, but triggers requirement for super-user if skipped) global_menu.enable('!root-password') - global_menu.enable('!superusers') global_menu.enable('!users') # Ask for archinstall-specific profiles (such as desktop environments etc) @@ -131,6 +133,7 @@ def perform_installation(mountpoint): Only requirement is that the block devices are formatted and setup prior to entering this function. """ + with archinstall.Installer(mountpoint, kernels=archinstall.arguments.get('kernels', ['linux'])) as installation: # Mount all the drives to the desired mountpoint # This *can* be done outside of the installation, but the installer can deal with it. @@ -216,13 +219,8 @@ def perform_installation(mountpoint): if archinstall.arguments.get('profile', None): installation.install_profile(archinstall.arguments.get('profile', None)) - if archinstall.arguments.get('!users',{}): - for user, user_info in archinstall.arguments.get('!users', {}).items(): - installation.user_create(user, user_info["!password"], sudo=False) - - if archinstall.arguments.get('!superusers',{}): - for superuser, user_info in archinstall.arguments.get('!superusers', {}).items(): - installation.user_create(superuser, user_info["!password"], sudo=True) + if users := archinstall.arguments.get('!users', None): + installation.create_users(users) if timezone := archinstall.arguments.get('timezone', None): installation.set_timezone(timezone) @@ -257,9 +255,9 @@ def perform_installation(mountpoint): installation.log("For post-installation tips, see https://wiki.archlinux.org/index.php/Installation_guide#Post-installation", fg="yellow") if not archinstall.arguments.get('silent'): - prompt = 'Would you like to chroot into the newly created installation and perform post-installation configuration?' - choice = archinstall.Menu(prompt, ['yes', 'no'], default_option='yes').run() - if choice == 'yes': + prompt = str(_('Would you like to chroot into the newly created installation and perform post-installation configuration?')) + choice = Menu(prompt, Menu.yes_no(), default_option=Menu.yes()).run() + if choice == Menu.yes(): try: installation.drop_to_shell() except: @@ -300,7 +298,8 @@ if archinstall.arguments.get('dry_run'): exit(0) if not archinstall.arguments.get('silent'): - input('Press Enter to continue.') + input(str(_('Press Enter to continue.'))) +archinstall.configuration_sanity_check() perform_filesystem_operations() perform_installation(archinstall.storage.get('MOUNT_POINT', '/mnt')) diff --git a/examples/minimal.py b/examples/minimal.py index d80c4045..8b4c847f 100644 --- a/examples/minimal.py +++ b/examples/minimal.py @@ -1,6 +1,8 @@ import archinstall # Select a harddrive and a disk password +from archinstall import User + archinstall.log("Minimal only supports:") archinstall.log(" * Being installed to a single disk") @@ -28,8 +30,8 @@ def install_on(mountpoint): installation.add_additional_packages(['nano', 'wget', 'git']) installation.install_profile('minimal') - installation.user_create('devel', 'devel') - installation.user_set_pw('root', 'airoot') + user = User('devel', 'devel', False) + installation.create_users(user) # Once this is done, we output some useful information to the user # And the installation is complete. diff --git a/examples/swiss.py b/examples/swiss.py index baf7b618..d0f02dc1 100644 --- a/examples/swiss.py +++ b/examples/swiss.py @@ -20,7 +20,7 @@ import pathlib from typing import TYPE_CHECKING, Any import archinstall -from archinstall import ConfigurationOutput, NetworkConfigurationHandler +from archinstall import ConfigurationOutput, NetworkConfigurationHandler, Menu if TYPE_CHECKING: _: Any @@ -38,8 +38,8 @@ TODO exec con return parameter """ def select_activate_NTP(): prompt = "Would you like to use automatic time synchronization (NTP) with the default time servers? [Y/n]: " - choice = archinstall.Menu(prompt, ['yes', 'no'], default_option='yes').run() - if choice == 'yes': + choice = Menu(prompt, Menu.yes_no(), default_option=Menu.yes()).run() + if choice == Menu.yes(): return True else: return False @@ -160,8 +160,8 @@ class SetupMenu(archinstall.GeneralMenu): def _setup_selection_menu_options(self): self.set_option('archinstall-language', archinstall.Selector( - _('Select Archinstall language'), - lambda x: self._select_archinstall_language('English'), + _('Archinstall language'), + lambda x: self._select_archinstall_language(x), default='English', enabled=True)) self.set_option('ntp', @@ -219,7 +219,7 @@ class MyMenu(archinstall.GlobalMenu): if self._execution_mode in ('full','lineal'): options_list = ['keyboard-layout', 'mirror-region', 'harddrives', 'disk_layouts', '!encryption-password','swap', 'bootloader', 'hostname', '!root-password', - '!superusers', '!users', 'profile', 'audio', 'kernels', 'packages','additional-repositories','nic', + '!users', 'profile', 'audio', 'kernels', 'packages','additional-repositories','nic', 'timezone', 'ntp'] if archinstall.arguments.get('advanced',False): options_list.extend(['sys-language','sys-encoding']) @@ -229,7 +229,7 @@ class MyMenu(archinstall.GlobalMenu): mandatory_list = ['harddrives'] elif self._execution_mode == 'only_os': options_list = ['keyboard-layout', 'mirror-region','bootloader', 'hostname', - '!root-password', '!superusers', '!users', 'profile', 'audio', 'kernels', + '!root-password', '!users', 'profile', 'audio', 'kernels', 'packages', 'additional-repositories', 'nic', 'timezone', 'ntp'] mandatory_list = ['hostname'] if archinstall.arguments.get('advanced',False): @@ -262,8 +262,12 @@ class MyMenu(archinstall.GlobalMenu): def check(s): return self.option(s).has_selection() + def has_superuser() -> bool: + users = self._menu_options['!users'].current_selection + return any([u.sudo for u in users]) + _, missing = self.mandatory_overview() - if mode in ('full','only_os') and (not check('!root-password') and not check('!superusers')): + if mode in ('full','only_os') and (not check('!root-password') and not has_superuser()): missing += 1 if mode in ('full', 'only_hd') and check('harddrives'): if not self.option('harddrives').is_empty() and not check('disk_layouts'): @@ -420,13 +424,8 @@ def os_setup(installation): if archinstall.arguments.get('profile', None): installation.install_profile(archinstall.arguments.get('profile', None)) - if archinstall.arguments.get('!users',{}): - for user, user_info in archinstall.arguments.get('!users', {}).items(): - installation.user_create(user, user_info["!password"], sudo=False) - - if archinstall.arguments.get('!superusers',{}): - for superuser, user_info in archinstall.arguments.get('!superusers', {}).items(): - installation.user_create(superuser, user_info["!password"], sudo=True) + if users := archinstall.arguments.get('!users', None): + installation.create_users(users) if timezone := archinstall.arguments.get('timezone', None): installation.set_timezone(timezone) @@ -480,8 +479,8 @@ def perform_installation(mountpoint, mode): installation.log("For post-installation tips, see https://wiki.archlinux.org/index.php/Installation_guide#Post-installation", fg="yellow") if not archinstall.arguments.get('silent'): prompt = 'Would you like to chroot into the newly created installation and perform post-installation configuration?' - choice = archinstall.Menu(prompt, ['yes', 'no'], default_option='yes').run() - if choice == 'yes': + choice = Menu(prompt, Menu.yes_no(), default_option=Menu.yes()).run() + if choice == Menu.yes(): try: installation.drop_to_shell() except: |