From e388537bc36534fe782e1e68a70ddcdb2e13e99a Mon Sep 17 00:00:00 2001 From: Werner Llácer Date: Sun, 2 Jan 2022 12:01:19 +0100 Subject: better handling the skip partitioning option. (#778) * better handling the skip partitioning option. plus sending some warnings to the user * device configuration options taken out from ask_user_questions. Forced by flake8 * Revert "device configuration options taken out from ask_user_questions." This reverts commit 1b3cffb3dfb165433bcf839151f1a719300fd891. * Adapted to new selection ui * Cleanup of obsolete code * Changed colour of skip messages from red to yellow * Flake8 comments --- examples/guided.py | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/examples/guided.py b/examples/guided.py index e8efb6cb..c394e596 100644 --- a/examples/guided.py +++ b/examples/guided.py @@ -96,20 +96,27 @@ def ask_user_questions(): # and convert them into archinstall.BlockDevice() objects. if archinstall.arguments.get('harddrives', None) is None: archinstall.arguments['harddrives'] = archinstall.select_harddrives() - - if archinstall.arguments.get('harddrives', None) and archinstall.storage.get('disk_layouts', None) is None: - archinstall.storage['disk_layouts'] = archinstall.select_disk_layout(archinstall.arguments['harddrives'], archinstall.arguments.get('advanced', False)) - - # Get disk encryption password (or skip if blank) - if archinstall.arguments['harddrives'] and archinstall.arguments.get('!encryption-password', None) is None: - if passwd := archinstall.get_password(prompt='Enter disk encryption password (leave blank for no encryption): '): - archinstall.arguments['!encryption-password'] = passwd - - if archinstall.arguments['harddrives'] and archinstall.arguments.get('!encryption-password', None): - # If no partitions was marked as encrypted, but a password was supplied and we have some disks to format.. - # Then we need to identify which partitions to encrypt. This will default to / (root). - if len(list(archinstall.encrypted_partitions(archinstall.storage['disk_layouts']))) == 0: - archinstall.storage['disk_layouts'] = archinstall.select_encrypted_partitions(archinstall.storage['disk_layouts'], archinstall.arguments['!encryption-password']) + # we skip the customary .get('harddrives',None) 'cause we are pretty certain that at this point it contains at least none (behaviour has changed from previous version, where it had an empty list. Shouls be compatible with my code + if not archinstall.arguments['harddrives']: + archinstall.log("You decided to skip harddrive selection",fg="yellow",level=logging.INFO) + archinstall.log(f"and will use whatever drive-setup is mounted at {archinstall.storage['MOUNT_POINT']} (experimental)",fg="yellow",level=logging.INFO) + archinstall.log("WARNING: Archinstall won't check the suitability of this setup",fg="yellow",level=logging.INFO) + if input("Do you wish to continue ? [Y/n]").strip().lower() == 'n': + exit(1) + else: + if archinstall.storage.get('disk_layouts', None) is None: + archinstall.storage['disk_layouts'] = archinstall.select_disk_layout(archinstall.arguments['harddrives'], archinstall.arguments.get('advanced', False)) + + # Get disk encryption password (or skip if blank) + if archinstall.arguments.get('!encryption-password', None) is None: + if passwd := archinstall.get_password(prompt='Enter disk encryption password (leave blank for no encryption): '): + archinstall.arguments['!encryption-password'] = passwd + + if archinstall.arguments.get('!encryption-password', None): + # If no partitions was marked as encrypted, but a password was supplied and we have some disks to format.. + # Then we need to identify which partitions to encrypt. This will default to / (root). + if len(list(archinstall.encrypted_partitions(archinstall.storage['disk_layouts']))) == 0: + archinstall.storage['disk_layouts'] = archinstall.select_encrypted_partitions(archinstall.storage['disk_layouts'], archinstall.arguments['!encryption-password']) # Ask which boot-loader to use (will only ask if we're in BIOS (non-efi) mode) if not archinstall.arguments.get("bootloader", None): -- cgit v1.2.3-54-g00ecf