return size
def check_sfdisk():
+ min_major = 2
+ min_minor = 26
+ min_minor_del = 28
+
proc = subprocess.run(['sfdisk', '-v'],
stdout=subprocess.PIPE)
version = proc.stdout.decode('utf-8').strip()
logging.debug(f"Found {version}")
- major, minor = [int(x) for x in re.findall('[0-9]+', version)][0:2]
+ version_tokens = [int(x) for x in re.findall('[0-9]+', version)]
+
+ if len(version_tokens) == 3:
+ major, minor, patch = version_tokens[0:3]
+ version_str = f"{major}.{minor}.{patch}"
+ elif len(version_tokens) == 2:
+ major, minor = version_tokens[0:2]
+ version_str = f"{major}.{minor}"
+ else:
+ logging.warning("Did not read version of sfdisk correctly.")
+ return False,False
+
support_delete = False
- if major < 2 or major == 2 and minor < 26:
- logging.error(f"Your sfdisk {major}.{minor}.{patch} is too old.")
+ if major < min_major or major == min_major and minor < min_minor:
+ logging.error(f"Your sfdisk {version_str} is too old. Please switch to at least {min_major}.{min_minor}")
return False,False
- elif major == 2 and minor >= 28:
+ elif major == min_major and minor >= min_minor_del:
support_delete = True
return True, support_delete