while true;doread -p "Name of new vm/server (caps allowed, not fqdn): " v;if[ -z $v];thenecho"error: name is required";elsename=$v;break;fi;done
while true;doread -p "Number of CPU cores (default $cpu): " v;if[ -z $v];then break;elseif ! [[$v=~ $numre]];thenecho"error: not a number";elsecpu=$v; break;fi;fi;done
while true;doread -p "Ram in GB (default $memory): " v;if[ -z $v];then break;elseif ! [[$v=~ $numre]];thenecho"error: not a number";elsememory=$v; break;fi;fi;done
while true;doread -p "Root disk size in GB (default $root_disk): " v;if[ -z $v];then break;elseif ! [[$v=~ $numre]];thenecho"error: not a number";elseroot_disk=$v; break;fi;fi;done
while true;doread -p "Path to store root disk (default $path): " v;if[ -z $v];thenpath="$path/$name.qcow2"; break;elseif ! [ -d $v];thenecho"error: not a directory";elsepath="$v/$name.qcow2"; break;fi;fi;done
variant=$(dialog --clear --title "Select Linux variant to use" --menu "Choose one of the following options:"15404\
archlinux "Arch Linux"\
alma "Alma Linux 9"\
2>&1 >/dev/tty);clear
while true;doread -p "Mac address (default $mac): " v;if[ -z $v];then break;elseif ! [[$v=~ $macre]];thenecho"error: invalid mac address";elsemac=$v; break;fi;fi;done
subnet=$(dialog --clear --title "Select subnet to use" --menu "Choose one of the following: "2010010"${dhcp_sets[@]}" 2>&1 >/dev/tty);subnet=`echo$subnet| grep -oP "172.16.\d+"`;clear;
while true;doread -p "Specify last segment of IP (defaults to next available): " v;if[ -z $v];then break;elseif ! [[$v=~ $numre]];thenecho"error: not a number";elseip=$v; break;fi;fi;done
while true;doread -p "Specify branch of build_ansible to use (defult $branch): " v;if[ -z $v];then break;elsebranch=$v;break;fi;done
while true;doread -p "Full path to extra disk to attach (if applicable, default none): " v;if[ -z $v];then break;elseif ! [ -f $v];thenecho"error: file doesn't exist";elseattach=$v;break;fi;fi;done
while true;doread -p "Autodeflate memory on use y/n (default $deflate)? " v;if[ -z $v];then break;elif["$v"=="y"];then break;elif["$v"=="n"];thendeflate=$v;break;elseecho"error: select y or n";fi;done
while true;doread -p "Autorun ansible build script (default $ansible)? " v;if[ -z $v];then break;elif["$v"=="y"];then break;elif["$v"=="n"];thenansible=$v;break;elseecho"error: select y or n";fi;done
path=`echo$path| sed -s 's/\/\//\//'`
attach=`echo$attach| sed -s 's/\/\//\//'`
echo""
echo"Name: $name"
echo"CPU: $cpu"
echo"Ram: $memory"
echo"Root Disk: $root_disk"
echo"Path: $path"
echo"Variant: $variant"
echo"Mac: $mac"
echo"Subnet: $subnet"
echo"IP: $ip"
echo"Branch: $branch"
echo"Attach: $attach"
echo"Deflate: $deflate"
echo"Run Ansible: $ansible"
echo""
read -p "Is this correct (y/n)? " v;if["$v" !="y"];then"Exiting, restart to reenter info"; exit;fi