#!/bin/bash
set -e
walls() {
    walls="/home/${username:?}/.local/share/wallpapers"
    mkdir -p "$walls"
    cd "$walls" || exit 1
    wget "https://mendess.xyz/api/v1/walls/home.png" -O "$walls/home.png"
}

if [ "$LOGNAME" != "root" ]; then
    echo "$LOGNAME not root downloading only wallpapers"
    username=$LOGNAME
    walls &
    disown
    exit
fi

pacman -Syu --noconfirm --needed gzip git sudo jq inetutils python wget

if [ ! -e /usr/local/share/kbd/keymaps/personal.map ]; then
    while
        read -rp 'Choose layout [default: us] ' layout
        [ -z "$layout" ] && layout=us
        layout_file="/usr/share/kbd/keymaps/i386/qwerty/${layout}.map.gz"
        [ ! -e "$layout_file" ]
    do :; done
    mkdir -p /usr/local/share/kbd/keymaps/
    cp "$layout_file" /usr/local/share/kbd/keymaps/personal.map.gz
    gunzip /usr/local/share/kbd/keymaps/personal.map.gz
    sed -i -r 's/1\s*=\s*Escape/1 = Caps_Lock/;s/58\s*=\s*Caps_Lock/58 = Escape/' \
        /usr/local/share/kbd/keymaps/personal.map

    rm -f /etc/vconsole.conf
    echo "KEYMAP=/usr/local/share/kbd/keymaps/personal.map" >/etc/vconsole.conf
    loadkeys /usr/local/share/kbd/keymaps/personal.map
fi

read -rp 'set root password? [Y/n] '
[ "${REPLY,,}" != n ] && passwd
while
    read -r -p 'Username: ' username
    if echo "$username" | grep " " >/dev/null; then
        echo username can\'t have spaces
    else
        false
    fi
do :; done
if ! grep "$username" /etc/passwd -q; then
    useradd \
        --create-home \
        --comment 'Pedro Mendes' \
        --groups video \
        --user-group \
        "$username"
    until passwd "$username"; do
        :
    done
    echo ''"$username"' ALL=(ALL) ALL' >>/etc/sudoers
fi

sudo sed -i -E 's/#(HandleLidSwitch.*)=(.*)/\1=suspend/' /etc/systemd/logind.conf

if ! grep pcspkr /etc/modprobe.d/blacklist.conf; then
    echo 'blacklist pcspkr' >>/etc/modprobe.d/blacklist.conf
fi
sudo -u "$username" bash -c '
set -e
cd
rm -f ~/.bash*
mkdir -p ~/.config
mkdir -p ~/.cache
mkdir -p ~/projects
export SPELLS=~/projects/spell-book/
cd projects
[ -e spell-book ] || git clone https://github.com/mendess/spell-book
cd ~
$SPELLS/spells/syncspellbook.spell
echo sourcing bash_profile
source ~/.bash_profile
echo sourcing bashrc
source ~/.bashrc
echo installing basic workflow
$SPELLS/scrolls/basicWF.sh
cd
'
walls &
disown
echo "Great success!"
echo "Log out and log back in as $username"
