Doors/setup

104 lines
2 KiB
Text
Raw Normal View History

2023-06-15 16:36:30 -04:00
#!/bin/bash
2023-06-17 19:32:45 -04:00
#
# setup
#
2023-06-15 16:36:30 -04:00
clear
2023-06-17 19:32:45 -04:00
# execute in less with a header for style points
2023-06-15 18:19:24 -04:00
exec > >(less +F --header 8) 2>&1
2023-06-15 17:49:53 -04:00
trap 'exec >&- 2>&-; wait' EXIT
2023-06-15 16:36:30 -04:00
2023-06-17 19:32:45 -04:00
# grab said header
2023-06-19 16:34:51 -04:00
curl -s https://old.doordesk.net/doors
2023-06-15 18:19:24 -04:00
echo -e "Doors are sturdier than windows.\n-------------------------------------------------------"
2023-06-15 16:36:30 -04:00
2023-06-17 19:32:45 -04:00
#
# detect OS and run corresponding setup
#
2023-06-15 16:36:30 -04:00
. /etc/os-release
OS=$NAME
2023-06-15 18:19:24 -04:00
echo -e "\nDetected OS as $OS"
2023-06-15 16:36:30 -04:00
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 &&
2023-06-19 20:25:03 -04:00
$HOME/.doors/scripts/install_arch
2023-06-15 16:36:30 -04:00
elif [[ $OS == *buntu* ]]; then
cd &&
sudo apt-get -y install git rsync &&
git clone https://github.com/adoyle0/Doors.git .doors &&
2023-06-19 20:25:03 -04:00
$HOME/.doors/scripts/install_min_ubuntu
2023-06-15 16:36:30 -04:00
elif [[ $OS == *Fedora* ]]; then
cd &&
sudo dnf install -y git rsync &&
git clone https://github.com/adoyle0/Doors.git .doors &&
2023-06-19 20:25:03 -04:00
$HOME/.doors/scripts/install_min_fedora
2023-06-15 16:36:30 -04:00
fi
2023-06-17 19:32:45 -04:00
#
# copy configs
#
2023-06-15 16:36:30 -04:00
echo -e "\nInstalling Configs..." &&
2023-06-19 20:25:03 -04:00
cd $HOME/.doors/configs &&
2023-06-15 16:36:30 -04:00
for file in *
do
2023-06-19 20:05:11 -04:00
echo -e "\n$file..." &&
2023-06-19 20:25:03 -04:00
cp -rbv $file $HOME/.config/
2023-06-15 16:36:30 -04:00
done &&
echo -e "\nLinking profile..." &&
2023-06-19 20:25:03 -04:00
cp -sbv $HOME/.config/shell/profile ~/.zprofile &&
2023-06-15 16:36:30 -04:00
2023-06-17 19:32:45 -04:00
2023-06-18 21:16:12 -04:00
#
# copy scripts
#
echo -e "\nInstalling Scripts..." &&
2023-06-19 20:25:03 -04:00
cd $HOME/.doors &&
2023-06-18 21:16:12 -04:00
2023-06-19 20:25:03 -04:00
if [ ! -d "$HOME/.local/bin" ]; then
mkdir "$HOME/.local/bin"
2023-06-18 21:16:12 -04:00
fi &&
2023-06-19 20:25:03 -04:00
cp -rbv bin $HOME/.local &&
2023-06-18 21:16:12 -04:00
2023-06-17 19:32:45 -04:00
#
# wrap up
#
2023-06-15 18:35:48 -04:00
echo -e "\nDone!\nLog out and back in for changes to take effect."
2023-06-17 19:32:45 -04:00
2023-06-19 20:05:11 -04:00
# give less time to catch up and tell it we're done
2023-06-17 19:32:45 -04:00
2023-06-15 18:19:24 -04:00
sleep 1 && killall -s SIGINT less