Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Hvornum <anton@hvornum.se>2021-06-10 21:00:33 +0200
committerAnton Hvornum <anton@hvornum.se>2021-06-10 21:00:33 +0200
commit0a8c061ab405e244a187b4615654ecca2e538156 (patch)
tree5f4da9a061c840f5a95a469074bcaf16a8afee61
parentadae29c205140da16132d318876ccb278a166e37 (diff)
Fixed format detection on commands, should be using exit codes instead?
-rw-r--r--archinstall/lib/disk.py12
-rw-r--r--archinstall/lib/installer.py8
-rw-r--r--examples/guided.py8
3 files changed, 18 insertions, 10 deletions
diff --git a/archinstall/lib/disk.py b/archinstall/lib/disk.py
index 4fb3d1e0..8e9d0d3f 100644
--- a/archinstall/lib/disk.py
+++ b/archinstall/lib/disk.py
@@ -437,13 +437,13 @@ class Partition:
log(f'Formatting {path} -> {filesystem}', level=logging.INFO)
if filesystem == 'btrfs':
- if b'UUID' not in (mkfs := SysCommand(f'/usr/bin/mkfs.btrfs -f {path}')):
+ if 'UUID:' not in (mkfs := SysCommand(f'/usr/bin/mkfs.btrfs -f {path}').decode('UTF-8')):
raise DiskError(f'Could not format {path} with {filesystem} because: {mkfs}')
self.filesystem = filesystem
elif filesystem == 'fat32':
- mkfs = SysCommand(f'/usr/bin/mkfs.vfat -F32 {path}')
- if (b'mkfs.fat' not in mkfs and b'mkfs.vfat' not in mkfs) or b'command not found' in mkfs:
+ mkfs = SysCommand(f'/usr/bin/mkfs.vfat -F32 {path}').decode('UTF-8')
+ if ('mkfs.fat' not in mkfs and 'mkfs.vfat' not in mkfs) or 'command not found' in mkfs:
raise DiskError(f"Could not format {path} with {filesystem} because: {mkfs}")
self.filesystem = filesystem
@@ -619,12 +619,6 @@ class Filesystem:
else:
partition['device_instance'].format(partition['filesystem']['format'], allow_formatting=partition.get('format', False))
- def mount_ordered_layout(self, layout :dict):
- mountpoints = {}
- for partition in layout['partitions']:
- print(partition)
- exit(0)
-
def find_partition(self, mountpoint):
for partition in self.blockdevice:
if partition.target_mountpoint == mountpoint or partition.mountpoint == mountpoint:
diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py
index da6f6a9b..b62b9595 100644
--- a/archinstall/lib/installer.py
+++ b/archinstall/lib/installer.py
@@ -122,6 +122,14 @@ class Installer:
return True
+ def mount_ordered_layout(self, layout :dict):
+ mountpoints = {}
+ for partition in layout['partitions']:
+ mountpoints[partition['mountpoint']] = partition['device_instance']
+
+ for mountpoint in sorted(mountpoints.keys()):
+ mountpoints[mountpoint].mount(f"{self.target}{mountpoint}")
+
def mount(self, partition, mountpoint, create_mountpoint=True):
if create_mountpoint and not os.path.isdir(f'{self.target}{mountpoint}'):
os.makedirs(f'{self.target}{mountpoint}')
diff --git a/examples/guided.py b/examples/guided.py
index 2e2d0d98..527fc67c 100644
--- a/examples/guided.py
+++ b/examples/guided.py
@@ -223,7 +223,6 @@ def perform_filesystem_operations():
for drive in archinstall.arguments['harddrives']:
with archinstall.Filesystem(drive, mode) as fs:
fs.load_layout(archinstall.storage['disk_layouts'][drive])
- fs.mount_ordered_layout(archinstall.storage['disk_layouts'][drive])
perform_installation(archinstall.storage.get('MOUNT_POINT', '/mnt'))
@@ -234,7 +233,14 @@ 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.
+ for drive in archinstall.arguments['harddrives']:
+ installation.mount_ordered_layout(archinstall.storage['disk_layouts'][drive])
+
# if len(mirrors):
# Certain services might be running that affects the system during installation.
# Currently, only one such service is "reflector.service" which updates /etc/pacman.d/mirrorlist