diff --git a/setup.sh b/setup.sh index ea74193..2129d74 100755 --- a/setup.sh +++ b/setup.sh @@ -10,49 +10,81 @@ startx_command="startlxqt" . ./connection.sh . ./user.sh -choice="" +setup_tildelinux() { + echo "What tilde would you like to connect to? (use the domain name as you would for ssh)" + read tilde_name + + echo "What is your username for $tilde_name?" + read tilde_username + + if ! grep -q "$tilde_username@$tilde_name" /tilde/tildes + then + echo "Now you will need to provide tildelinux with your ssh private key" + echo "By whatever means, place your private key in the /tilde/key directory" + echo "Here is a shell, once the key is in the proper location, simply type \"exit\" to close the shell and continue" + bash + + echo "Looking for key file..." + key_file="$(find_key_file '/tilde/key')" + while [ -z "$key_file" ] + do + echo "Could not find a valid key file in /tilde/key" + echo "Use this shell to try and fix any problems, then check again by exiting this shell" + echo "Use \`exit 1\` to abort the install" + bash || fail + key_file="$(find_key_file '/tilde/key')" + done + echo "Key file located at $key_file, testing connection..." + connection_test "$key_file" "$tilde_username" "$tilde_name" + else + key_file="$(cat /tilde/tildes \ + | grep -A4 "Host $tilde_username@$tilde_name" \ + | grep "IdentityFile" \ + | cut -f2 -d ' ')" + echo "$tilde_name found in /tilde/tildes, using $key_file as key file" + fi + + echo "Configuring user..." + configure_user "$key_file" "$tilde_username" "$tilde_name" "$startx_command" + echo "User configured!" + + echo "All done! Enjoy using Tildelinux!" + rm ./setup_incomplete + systemctl restart 'getty@tty1.service' +} + +choose_option() { + answers="1 2" + answer="" + + + echo "What would you like to do?" + echo "1. Configure Tildelinux for use as a live system" + echo "2. Install Tildelinux to a disk" + read -r answer + + if is_substring "$answer" "$answers" + then + case "$answer" in + "1") + setup_tildelinux + ;; + "2") + startx + ;; + else + echo "\"$answer\" is not a valid option." + choose_option + fi +} clear echo "=== Welcome to Tildelinux! ===" configure_network -echo "What tilde would you like to connect to? (use the domain name as you would for ssh)" -read tilde_name - -echo "What is your username for $tilde_name?" -read tilde_username - -if ! grep -q "$tilde_username@$tilde_name" /tilde/tildes +if [ -f ./setup_incomplete ] then - echo "Now you will need to provide tildelinux with your ssh private key" - echo "By whatever means, place your private key in the /tilde/key directory" - echo "Here is a shell, once the key is in the proper location, simply type \"exit\" to close the shell and continue" - bash - - echo "Looking for key file..." - key_file="$(find_key_file '/tilde/key')" - while [ -z "$key_file" ] - do - echo "Could not find a valid key file in /tilde/key" - echo "Use this shell to try and fix any problems, then check again by exiting this shell" - echo "Use \`exit 1\` to abort the install" - bash || fail - key_file="$(find_key_file '/tilde/key')" - done - echo "Key file located at $key_file, testing connection..." - connection_test "$key_file" "$tilde_username" "$tilde_name" + choose_option else - key_file="$(cat /tilde/tildes \ - | grep -A4 "Host $tilde_username@$tilde_name" \ - | grep "IdentityFile" \ - | cut -f2 -d ' ')" - echo "$tilde_name found in /tilde/tildes, using $key_file as key file" -fi - -echo "Configuring user..." -configure_user "$key_file" "$tilde_username" "$tilde_name" "$startx_command" -echo "User configured!" - -echo "All done! Enjoy using Tildelinux!" -rm ./setup_incomplete -systemctl restart 'getty@tty1.service' + setup_tildelinux +fi