3 # This is the interactive part of the installer
4 # Everything requiring user input is asked first,
5 # NO INSTALLATION IS DONE IN THIS SCRIPT
6 # Results get saved in /root/instantARCH/config
7 # and read out during installation
8 # results also get copied to the target root partition
10 mkdir /root/instantARCH/config
13 source <(curl -Ls git.io/paperbash)
16 source /root/instantARCH/askutils.sh
18 if [ -e /usr/share/liveutils ]; then
19 echo "GUI Mode active"
24 # switch imenu to fzf and dialog
29 imenu -m "Welcome to the instantOS installer"
31 # go back to the beginning if user isn't happy with settings
32 # this loop wraps the rest of the installer
33 while ! iroot confirm; do
35 # ask for keyboard layout
37 if head -1 /root/instantARCH/data/lang/keyboard/"$NEWKEY" | grep -q '[^ ][^ ]'; then
38 loadkeys $(head -1 /root/instantARCH/data/lang/keyboard/"$NEWKEY")
40 guimode && setxkbmap -layout $(tail -1 /root/instantARCH/data/lang/keyboard/"$NEWKEY")
46 while [ -z "$DISK" ]; do
48 DISK=$(fdisk -l | grep -i '^Disk /.*:' | imenu -l "select disk> ")
49 if ! echo "Install on $DISK ?
50 this will delete all existing data" | imenu -C; then
55 echo "$DISK" | grep -o '/dev/[^:]*' | iroot i disk
58 echo "$DISK" | grep -o '/dev/[^:]*' | iroot i grubdisk
61 # choice between multiple nvidia drivers
64 # create user and add to groups
67 while [ -z "$NEWHOSTNAME" ]; do
68 NEWHOSTNAME=$(imenu -i "enter name of this computer")
71 echo "$NEWHOSTNAME" >/root/instantARCH/config/hostname
74 SUMMARY="Installation Summary:"
76 addsum "Username" "user"
77 addsum "Locale" "locale"
78 addsum "Region" "region"
79 addsum "Nearest City" "city"
80 addsum "Keyboard layout" "keyboard"
81 addsum "Target install drive" "disk"
82 addsum "Hostname" "hostname"
93 Should installation proceed with these parameters?"
95 if imenu -C <<<"$SUMMARY"; then
111 imenu -M <<<"The installation will now begin.
112 This could take a while.
113 Keep the machine powered and connected to the internet"