#!/bin/bash
#
# setup
#

clear

# execute in less with a header for style points

exec > >(less +F --header 8) 2>&1
trap 'exec >&- 2>&-; wait' EXIT


# grab said header

curl -s https://old.doordesk.net/doors
echo -e "Doors are sturdier than windows.\n-------------------------------------------------------"



#
# detect OS and run corresponding setup
#

. /etc/os-release
OS=$NAME
echo -e "\nDetected OS as $OS"

if [[ $OS == *Arch* ]]; then
    cd &&
        echo "Enabling Pacman colors..." &&
        sudo sed '/Color/s/^#//' -i /etc/pacman.conf &&

        echo -e "\nVerifying base requirements..." &&
        sudo pacman -S --needed --noconfirm git base-devel  &&

        if test -d .doors; then
            echo -e "\n$HOME/.doors found, checking for updates..."
            cd .doors && git pull && cd
        else
            echo -e "\n$HOME/.doors not found, creating..."
            git clone https://github.com/adoyle0/Doors.git .doors
        fi &&

        $HOME/.doors/scripts/install_arch

elif [[ $OS == *buntu* ]]; then
    cd &&
        sudo apt-get -y install git rsync &&
        git clone https://github.com/adoyle0/Doors.git .doors &&
        $HOME/.doors/scripts/install_min_ubuntu

elif [[ $OS == *Fedora* ]]; then
    cd &&
        sudo dnf install -y git rsync &&
        git clone https://github.com/adoyle0/Doors.git .doors &&
        $HOME/.doors/scripts/install_min_fedora
fi



#
# copy configs
#

echo -e "\nInstalling Configs..." &&
    cd $HOME/.doors/configs &&

    for file in *
    do
        echo -e "\n$file..." &&
        cp -rbv $file $HOME/.config/
    done &&
    echo -e "\nLinking profile..." &&
        cp -sbv $HOME/.config/shell/profile ~/.zprofile &&



#
# copy scripts
#

echo -e "\nInstalling Scripts..." &&
    cd $HOME/.doors &&

    if [ ! -d "$HOME/.local/bin" ]; then
        mkdir "$HOME/.local/bin"
    fi &&

    cp -rbv bin $HOME/.local &&



#
# wrap up
#

echo -e "\nDone!\nLog out and back in for changes to take effect."


# give less time to catch up and tell it we're done

sleep 1 && killall -s SIGINT less