Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorAnton Hvornum <anton.feeds@gmail.com>2021-01-25 15:34:35 +0100
committerAnton Hvornum <anton.feeds@gmail.com>2021-01-25 15:34:35 +0100
commit1c80a893acfb97859dd6c0f61a2cf74c03958595 (patch)
tree36afe81d9bdd5522f1ffb1046c1d3988af8bc387 /examples
parent3a16d156b946e5a6282b8c364e406cf0b4adea44 (diff)
Adding copy mode for #95 (#82). I wouldn't say this is a hacky way of doing it, but using a string as identifier is the only way I can think of currently in guided.py. When user is prompted to select a interface to configure for networking, there's now a zero-option to copy existing ISO configuration to the install medium. This enables advance configuration prior to running the installer - and simply copy it straight over to the install medium. Two requirements: 1: That iwd is used for wifi configuration and config for passwords etc are stored in /var/lib/iwd 2: That systemd-networkd is used to configure networking/IP/DHCP as anything under /etc/systemd/networkd/* is copied over.
Diffstat (limited to 'examples')
-rw-r--r--examples/guided.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/examples/guided.py b/examples/guided.py
index 7726d5b9..ab284721 100644
--- a/examples/guided.py
+++ b/examples/guided.py
@@ -49,11 +49,18 @@ def perform_installation(device, boot_partition, language, mirrors):
installation.set_keyboard_language(language)
installation.add_bootloader()
- if archinstall.storage['_guided']['network']:
+ # If user selected to copy the current ISO network configuration
+ # Perform a copy of the config
+ if archinstall.storage['_guided']['network'] == 'Copy ISO network configuration to installation':
+ installation.copy_ISO_network_config(enable_services=True) # Sources the ISO network configuration to the install medium.
+
+ # Otherwise, if a interface was selected, configure that interface
+ elif archinstall.storage['_guided']['network']:
installation.configure_nic(**archinstall.storage['_guided']['network'])
installation.enable_service('systemd-networkd')
installation.enable_service('systemd-resolved')
+
if archinstall.storage['_guided']['packages'] and archinstall.storage['_guided']['packages'][0] != '':
installation.add_additional_packages(archinstall.storage['_guided']['packages'])
@@ -188,11 +195,12 @@ while 1:
# Optionally configure one network interface.
#while 1:
-interfaces = archinstall.list_interfaces() # {MAC: Ifname}
+# {MAC: Ifname}
+interfaces = {'ISO-CONFIG' : 'Copy ISO network configuration to installation', **archinstall.list_interfaces()}
archinstall.storage['_guided']['network'] = None
nic = archinstall.generic_select(interfaces.values(), "Select one network interface to configure (leave blank to skip): ")
-if nic:
+if nic and nic != 'Copy ISO network configuration to installation':
mode = archinstall.generic_select(['DHCP (auto detect)', 'IP (static)'], f"Select which mode to configure for {nic}: ")
if mode == 'IP (static)':
while 1:
@@ -217,7 +225,8 @@ if nic:
archinstall.storage['_guided']['network'] = {'nic': nic, 'dhcp': False, 'ip': ip, 'gateway' : gateway, 'dns' : dns}
else:
archinstall.storage['_guided']['network'] = {'nic': nic}
-
+elif nic:
+ archinstall.storage['_guided']['network'] = nic
print()
print('This is your chosen configuration:')