Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall
diff options
context:
space:
mode:
authorAnton Hvornum <anton@hvornum.se>2021-06-14 19:04:51 +0200
committerAnton Hvornum <anton@hvornum.se>2021-06-14 19:04:51 +0200
commitfa8862a46078a9684144853461e2c3ba99bda71c (patch)
treeb3ef6b04428654dd185a2930018a707acb240381 /archinstall
parent6176ac5e5d6fc52740c2af73af89db7e413d3d2f (diff)
moved valid_parted_position to disk. And made it handle float numbers.
Diffstat (limited to 'archinstall')
-rw-r--r--archinstall/lib/disk.py18
-rw-r--r--archinstall/lib/user_interaction.py22
2 files changed, 20 insertions, 20 deletions
diff --git a/archinstall/lib/disk.py b/archinstall/lib/disk.py
index 8424bc24..c63a7b09 100644
--- a/archinstall/lib/disk.py
+++ b/archinstall/lib/disk.py
@@ -13,6 +13,24 @@ GPT = 0b00000001
MBR = 0b00000010
+def valid_parted_position(pos :str):
+ if not len(pos):
+ return False
+
+ if pos.isdigit():
+ return True
+
+ if pos[-1] == '%' and pos[:-1].isdigit():
+ return True
+
+ if pos[-3:].lower() in ['mib', 'kib', 'b', 'tib'] and pos[:-3].replace(".", "", 1).isdigit():
+ return True
+
+ if pos[-2:].lower() in ['kb', 'mb', 'gb', 'tb'] and pos[:-2].replace(".", "", 1).isdigit():
+ return True
+
+ return False
+
def valid_fs_type(fstype :str) -> bool:
# https://www.gnu.org/software/parted/manual/html_node/mkpart.html
# Above link doesn't agree with `man parted` /mkpart documentation:
diff --git a/archinstall/lib/user_interaction.py b/archinstall/lib/user_interaction.py
index d4275b43..9d5c1e6f 100644
--- a/archinstall/lib/user_interaction.py
+++ b/archinstall/lib/user_interaction.py
@@ -9,7 +9,7 @@ import signal
import sys
import time
-from .disk import BlockDevice, valid_fs_type, find_partition_by_mountpoint, suggest_single_disk_layout, suggest_multi_disk_layout
+from .disk import BlockDevice, valid_fs_type, find_partition_by_mountpoint, suggest_single_disk_layout, suggest_multi_disk_layout, valid_parted_position
from .exceptions import *
from .general import SysCommand
from .hardware import AVAILABLE_GFX_DRIVERS, has_uefi, has_amd_graphics, has_intel_graphics, has_nvidia_graphics
@@ -554,24 +554,6 @@ def generic_select(options, input_text="Select one of the above by index or abso
return selected_option
-def valid_parted_position(pos :str):
- if not len(pos):
- return False
-
- if pos.isdigit():
- return True
-
- if pos[-1] == '%' and pos[:-1].isdigit():
- return True
-
- if pos[-3:].lower() in ['mib', 'kib', 'b', 'tib'] and pos[:-3].isdigit():
- return True
-
- if pos[-2:].lower() in ['kb', 'mb', 'gb', 'tb'] and pos[:-2].isdigit():
- return True
-
- return False
-
def partition_overlap(partitions :list, start :str, end :str) -> bool:
# TODO: Implement sanity check
return False
@@ -679,7 +661,7 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> dict:
}
})
else:
- log(f"Invalid start, end or fstype for this partition. Ignoring this partition creation.", fg="red")
+ log(f"Invalid start ({valid_parted_position(start)}), end ({valid_parted_position(end)}) or fstype ({valid_fs_type(fstype)}) for this partition. Ignoring this partition creation.", fg="red")
continue
elif task[:len("Suggest partition layout")] == "Suggest partition layout":
if len(block_device_struct):