tl-setup refactor

This commit is contained in:
sose 2020-08-17 20:13:58 -07:00
parent 9aa9831f9b
commit fadc6604f3
5 changed files with 72 additions and 17 deletions

View File

@ -10,6 +10,7 @@ check_key_file() {
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"
@ -25,21 +26,44 @@ connection_test() {
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() {
mkdir -p "/tmp/home/$tilde_username"
cp "/root/.gtkrc-2.0" "/tmp/home/$tilde_username"
cp -r "/root/.config" "/tmp/home/$tilde_username"
mkdir "/home/$tilde_username"
useradd "$tilde_username" -d "/tmp/home/$tilde_username"
chown "$tilde_username:$tilde_username" "/home/$tilde_username"
chown "$tilde_username:$tilde_username" "/tmp/home/$tilde_username"
user_homedir="/home/$tilde_username"
tilde_homedir="/tilde/$tilde_name/home/$tilde_username"
mkdir -p "$tilde_homedir"
mkdir -p "$user_homedir"
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 "echo Mounting sshfs filesystem..." > "/tmp/home/$tilde_username/.profile"
echo "sshfs $tilde_username@$tilde_name:/home/$tilde_username /home/$tilde_username -o ssh_command=\"ssh -i $key_file\"" >> "/tmp/home/$tilde_username/.profile"
echo "export HOME=/home/$tilde_username" >> "/tmp/home/$tilde_username/.profile"
echo "cd /home/$tilde_username" >> "/tmp/home/$tilde_username/.profile"
echo "HOME=/tmp/home/$tilde_username startx" >> "/tmp/home/$tilde_username/.profile"
echo "startlxqt" > "/tmp/home/$tilde_username/.xinitrc"
echo "$startx_command" > "$user_homedir/.xinitrc"
usermod -a -G sudo "$tilde_username"
mkdir '/etc/systemd/system/getty@tty1.service.d'

2
dotbashrc.template Normal file
View File

@ -0,0 +1,2 @@
#!/bin/bash
export HOME="{{ TILDE_HOMEDIR }}"

20
dotprofile.template Normal file
View File

@ -0,0 +1,20 @@
echo Mounting sshfs filesystem...
echo "Waiting for network... (^C to abort)"
while [ "$(nmcli networking connectivity)" != "full" ]
do
echo "."
sleep 1
done
echo "Network found, mounting sshfs..."
if ( sshfs {{ TILDE_USERNAME }}@{{ TILDE_NAME }}:/home/{{ TILDE_USERNAME }} {{ TILDE_HOMEDIR }} -o nonempty,allow_root,ssh_command="ssh -i {{ KEY_FILE }}" )
then
export XDG_CONFIG_HOME="{{ USER_HOMEDIR }}/.config"
export XDG_DATA_HOME="{{ USER_HOMEDIR }}/.local/share"
xdg-user-dirs-update --force
cd {{ TILDE_HOMEDIR }}
startx
else
echo "Failed to mount, aborting..."
fi

View File

@ -1,12 +1,13 @@
#!/bin/sh
. ./util.sh
. ./basics.sh
. ./irc.sh
export tilde_name=""
export tilde_username=""
export key_file=""
export startx_command="startlxqt"
. ./util.sh
. ./basics.sh
. ./irc.sh
#configure_tilde
#configure_irc

8
user-dirs.dirs.template Normal file
View File

@ -0,0 +1,8 @@
XDG_DESKTOP_DIR="{{ TILDE_HOMEDIR }}/Desktop"
XDG_DOCUMENTS_DIR="{{ TILDE_HOMEDIR }}/Documents"
XDG_DOWNLOAD_DIR="{{ TILDE_HOMEDIR }}/Downloads"
XDG_MUSIC_DIR="{{ TILDE_HOMEDIR }}/Music"
XDG_PICTURES_DIR="{{ TILDE_HOMEDIR }}/Pictures"
XDG_PUBLICSHARE_DIR="{{ TILDE_HOMEDIR }}/Public"
XDG_TEMPLATES_DIR="{{ TILDE_HOMEDIR }}/Templates"
XDG_VIDEOS_DIR="{{ TILDE_HOMEDIR }}/Videos"