From b3bcf54a2cb915b8dd9f59d6a85a5ea45f61fd96 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Wed, 11 Nov 2020 20:20:46 +0000 Subject: Fixed generic_select() to accept (and break on) empty selects. --- archinstall/lib/user_interaction.py | 4 ++- examples/guided.py | 53 +++++++++++++++++++------------------ 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/archinstall/lib/user_interaction.py b/archinstall/lib/user_interaction.py index 29dfaed2..fdbabe96 100644 --- a/archinstall/lib/user_interaction.py +++ b/archinstall/lib/user_interaction.py @@ -24,7 +24,9 @@ def generic_select(options, input_text="Select one of the above by index or abso print(f"{index}: {option}") selected_option = input(input_text) - if selected_option.isdigit(): + if len(selected_option.strip()) <= 0: + return None + elif selected_option.isdigit(): selected_option = options[int(selected_option)] elif selected_option in options: pass # We gave a correct absolute value diff --git a/examples/guided.py b/examples/guided.py index 4edc593e..039296c8 100644 --- a/examples/guided.py +++ b/examples/guided.py @@ -184,32 +184,33 @@ while 1: print(e) # Optionally configure one network interface. -while 1: - interfaces = archinstall.list_interfaces() # {MAC: Ifname} - archinstall.storage['_guided']['network'] = None - - nic = archinstall.generic_select(interfaces.values(), "Select one network interface to configure (leave blank to skip): ") - if nic: - mode = archinstall.generic_select(['DHCP (auto detect)', 'IP (static)'], f"Select which mode to configure for {nic}: ") - if mode == 'IP (static)': - while 1: - ip = input(f"Enter the IP and subnet for {nic} (example: 192.168.0.5/24): ").strip() - if ip: - break - else: - ArchInstall.log( - "You need to enter a valid IP in IP-config mode.", - level=archinstall.LOG_LEVELS.Warning, - bg='black', - fg='red' - ) - - gateway = input('Enter your gateway (router) IP address or leave blank for none: ').strip() - dns = input('Enter your DNS servers (space separated, blank for none): ').strip().split(' ') - - archinstall.storage['_guided']['network'] = {'nic': nic, 'dhcp': False, 'ip': ip, 'gateway' : gateway, 'dns' : dns} - else: - archinstall.storage['_guided']['network'] = {'nic': nic} +#while 1: +interfaces = archinstall.list_interfaces() # {MAC: Ifname} +archinstall.storage['_guided']['network'] = None + +nic = archinstall.generic_select(interfaces.values(), "Select one network interface to configure (leave blank to skip): ") +if nic: + mode = archinstall.generic_select(['DHCP (auto detect)', 'IP (static)'], f"Select which mode to configure for {nic}: ") + if mode == 'IP (static)': + while 1: + ip = input(f"Enter the IP and subnet for {nic} (example: 192.168.0.5/24): ").strip() + if ip: + break + else: + ArchInstall.log( + "You need to enter a valid IP in IP-config mode.", + level=archinstall.LOG_LEVELS.Warning, + bg='black', + fg='red' + ) + + gateway = input('Enter your gateway (router) IP address or leave blank for none: ').strip() + dns = input('Enter your DNS servers (space separated, blank for none): ').strip().split(' ') + + archinstall.storage['_guided']['network'] = {'nic': nic, 'dhcp': False, 'ip': ip, 'gateway' : gateway, 'dns' : dns} + else: + archinstall.storage['_guided']['network'] = {'nic': nic} + print() print('This is your chosen configuration:') -- cgit v1.2.3-54-g00ecf