From c9f979a0ad5e6c3644f0fdc017fbf42c5a27ce34 Mon Sep 17 00:00:00 2001 From: hygienic-books Date: Sat, 11 Nov 2023 01:19:01 +0100 Subject: [PATCH] feat(iso): In setup questionnaire ask for OS IP and gateway (#21) --- setup.sh | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index cd2ed2d..5c61455 100644 --- a/setup.sh +++ b/setup.sh @@ -224,7 +224,59 @@ function setup_env_vars () { echo fi - for env_var in 'ARCHZBM_ZFSPROPS_NO_COMPRESSION' 'ARCHZBM_ZFSPROPS_NO_ENCRYPTION' 'ARCHZBM_ZPOOL_PASSWORD' 'ARCHZBM_ROOT_PASSWORD' 'ARCHZBM_NET_AUTOCONF' 'ARCHZBM_NET_DEVICE' 'ARCHZBM_NET_CLIENT_IP' 'ARCHZBM_NET_NETMASK' 'ARCHZBM_NET_GATEWAY_IP' 'ARCHZBM_SSH_PORT' 'ARCHZBM_SSH_KEEPALIVE_INTVL' 'ARCHZBM_SSH_AUTH_KEYS'; do + if [[ "${want_ssh_in_zbm}" ]]; then + echo 'Do you want to define operating system'"'"'s IP address?' + select arg_os_ip in 'Yes (let me specify)' 'Yes (use ZBM addresses)' 'No (DHCP is fine)'; do + case "${arg_os_ip}" in + 'Yes (let me specify)') + want_custom_ip_in_os='true' + want_dns_and_ntp='true' + break + ;; + 'Yes (use ZBM addresses)') + ARCHZBM_OS_CLIENT_IP="${ARCHZBM_NET_CLIENT_IP}" + ARCHZBM_NET_CLIENT_IP_PREFIX="$(calculate_prefix_from_netmask "${ARCHZBM_NET_NETMASK}")" + ARCHZBM_OS_CLIENT_IP+="${ARCHZBM_NET_CLIENT_IP_PREFIX}" + ARCHZBM_OS_GATEWAY_IP="${ARCHZBM_NET_GATEWAY_IP}" + want_dns_and_ntp='true' + break + ;; + 'No (DHCP is fine)') + break + ;; + esac + done <&3 && echo + + if [[ "${want_custom_ip_in_os}" ]]; then + read -u3 -p 'Interface IP address with CIDR prefix (a.b.c.d/nn): ' ARCHZBM_OS_CLIENT_IP + echo + + read -u3 -p 'Gateway IP address: ' ARCHZBM_OS_GATEWAY_IP + echo + fi + else + echo 'Do you want to define operating system'"'"'s IP address?' + select arg_os_ip in 'Yes (let me specify)' 'No (DHCP is fine)'; do + case "${arg_os_ip}" in + 'Yes (let me specify)') + want_own_ip_in_os='true' + want_dns_and_ntp='true' + break + ;; + 'No (DHCP is fine)') + break + ;; + esac + done <&3 && echo + + if [[ "${want_own_ip_in_os}" ]]; then + read -u3 -p 'Interface IP address with CIDR prefix (a.b.c.d/nn): ' ARCHZBM_OS_CLIENT_IP + echo + + read -u3 -p 'Gateway IP address: ' ARCHZBM_OS_GATEWAY_IP + echo + fi + fi if [[ "${!env_var}" ]]; then printf -- '%s='"'"'%s'"'"'\n' \ "${env_var}" "${!env_var}" \