tl-setup/basics.sh

83 lines
2.6 KiB
Bash
Executable File

#!/bin/sh
ssh_command=""
check_key_file() {
chmod 700 /tilde/key/*
key_file="$(find /tilde/key | tail -n1)"
if [ -f "$key_file" ]
then
while [ -z "$(cat $key_file | head -n1 | grep -- '-----BEGIN .* PRIVATE KEY-----')" ]
do
echo "$key_file does not look like a private key file, try again"
key_file="$(find /tilde/key | tail -n1)"
bash
done
ssh_command="ssh -i $key_file $tilde_username@$tilde_name"
fi
}
connection_test() {
while ! $ssh_command 'exit'
do
echo "There seems to be a problem connecting to the tilde"
echo "Use this shell to try and fix any problems, then try connecting again by exiting the shell"
bash
done
}
configure_user_files() {
# TODO: refactor file creation to be script-independant
# user_homedir=$1
# tilde_homedir=$2
user_homedir="/home/$tilde_username"
tilde_homedir="/tilde/$tilde_name/home/$tilde_username"
sed "s|{{ TILDE_USERNAME }}|$tilde_username|g" "./dotprofile.template" > "$user_homedir/.profile"
sed -i "s|{{ TILDE_NAME }}|$tilde_name|g" "$user_homedir/.profile"
sed -i "s|{{ KEY_FILE }}|$key_file|g" "$user_homedir/.profile"
sed -i "s|{{ TILDE_HOMEDIR }}|$tilde_homedir|g" "$user_homedir/.profile"
sed -i "s|{{ USER_HOMEDIR }}|$user_homedir|g" "$user_homedir/.profile"
sed "s|{{ TILDE_HOMEDIR }}|$tilde_homedir|g" "./user-dirs.dirs.template" > "$user_homedir/.config/user-dirs.dirs"
sed "s|{{ TILDE_HOMEDIR }}|$tilde_homedir|g" "./dotbashrc.template" > "$user_homedir/.bashrc"
}
configure_user() {
user_homedir="/home/$tilde_username"
tilde_homedir="/tilde/$tilde_name/home/$tilde_username"
mkdir -p "$tilde_homedir"
mkdir -p "$user_homedir"
touch "$user_homedir/first_login"
cp "/root/.gtkrc-2.0" "$user_homedir"
cp -r "/root/.config" "$user_homedir"
configure_user_files
useradd "$tilde_username" -d "$user_homedir"
chsh -s '/bin/bash' "$tilde_username"
chown -R "$tilde_username:$tilde_username" "$user_homedir"
chown -R "$tilde_username:$tilde_username" "$tilde_homedir"
chown "$tilde_username:$tilde_username" "$key_file"
echo "$startx_command" > "$user_homedir/.xinitrc"
usermod -a -G sudo "$tilde_username"
mkdir '/etc/systemd/system/getty@tty1.service.d'
echo "[Service]" > '/etc/systemd/system/getty@tty1.service.d/override.conf'
echo "ExecStart=" >> '/etc/systemd/system/getty@tty1.service.d/override.conf'
echo "ExecStart=-/sbin/agetty --autologin $tilde_username %I $TERM" >> '/etc/systemd/system/getty@tty1.service.d/override.conf'
echo "Type=idle" >> '/etc/systemd/system/getty@tty1.service.d/override.conf'
systemctl daemon-reload
}
configure_network() {
echo "Press ENTER to configure network"
read dummy_var
nmtui
}