Starting implementing #124. The installer will be detatched from block devices and partitions. Instead it will rely on a given destination to pacstrap to. From there, it should be able to do reverse-lookups on the target and base it's information and choises from there. This removes any form of partitioning logic, hardware logic and other things from the initialization of the installer. These things should be explicitly called from the installers functions instead. Such as .set_hostname() instead of passing it as a initiation variable.

This commit is contained in:
Anton Hvornum 2021-04-08 22:47:13 +02:00
parent ef89010efe
commit e717a72a10
No known key found for this signature in database
GPG Key ID: F1234C5BA67C59DF
2 changed files with 11 additions and 10 deletions

View File

@ -34,10 +34,8 @@ class Installer():
:type hostname: str, optional
"""
def __init__(self, partition, boot_partition, *, base_packages='base base-devel linux linux-firmware efibootmgr', profile=None, mountpoint='/mnt', hostname='ArchInstalled', logdir=None, logfile=None):
self.profile = profile
self.hostname = hostname
self.mountpoint = mountpoint
def __init__(self, target, *, base_packages='base base-devel linux linux-firmware efibootmgr', logdir=None, logfile=None):
self.target = target
self.init_time = time.strftime('%Y-%m-%d_%H-%M-%S')
self.milliseconds = int(str(time.time()).split('.')[1])

View File

@ -12,12 +12,13 @@ if archinstall.arguments.get('help', None):
archinstall.arguments['harddrive'] = archinstall.select_disk(archinstall.all_disks())
archinstall.arguments['harddrive'].keep_partitions = False
def install_on(root, boot):
# We kick off the installer by telling it where the root and boot lives
with archinstall.Installer(root, boot_partition=boot, hostname='minimal-arch') as installation:
def install_on(mountpoint):
# We kick off the installer by telling it where the
with archinstall.Installer(mountpoint) as installation:
# Strap in the base system, add a boot loader and configure
# some other minor details as specified by this profile and user.
if installation.minimal_installation():
installation.set_hostname('minimal-arch')
installation.add_bootloader()
# Optionally enable networking:
@ -57,8 +58,10 @@ with archinstall.Filesystem(archinstall.arguments['harddrive'], archinstall.GPT)
with archinstall.luks2(root, 'luksloop', archinstall.arguments.get('!encryption-password', None)) as unlocked_root:
unlocked_root.format(root.filesystem)
install_on(unlocked_root)
unlocked_root.mount('/mnt')
else:
root.format(root.filesystem)
install_on(root, boot)
root.mount('/mnt')
boot.mount('/mnt/boot')
install_on('/mnt')