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 ! [ -e /root/instantARCH/config/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/[^:]*' >/root/instantARCH/config/disk
57 # choice between multiple nvidia drivers
60 # create user and add to groups
63 while [ -z "$NEWHOSTNAME" ]; do
64 NEWHOSTNAME=$(imenu -i "enter name of this computer")
67 echo "$NEWHOSTNAME" >/root/instantARCH/config/hostname
70 SUMMARY="Installation Summary:"
72 addsum "Username" "user"
73 addsum "Locale" "locale"
74 addsum "Region" "region"
75 addsum "Nearest City" "city"
76 addsum "Keyboard layout" "keyboard"
77 addsum "Target install drive" "disk"
78 addsum "Hostname" "hostname"
89 Should installation proceed with these parameters?"
91 if imenu -C <<<"$SUMMARY"; then
92 touch /root/instantARCH/config/confirm
107 imenu -M <<<"The installation will now begin.
108 This could take a while.
109 Keep the machine powered and connected to the internet"