Doors/setup

102 lines
2.6 KiB
Text
Raw Normal View History

2023-06-15 16:36:30 -04:00
#!/bin/bash
2023-06-17 19:32:45 -04:00
set -e
2023-06-17 19:32:45 -04:00
# Trigger sudo prompt before less can block password input
sudo echo ''
# Detect OS and act accordingly
. /etc/os-release
OS=$NAME
2023-12-29 23:47:33 -05:00
# Check for less and install if not found
if ! type "less" &> /dev/null; then
echo "less not found, installing..."
sudo pacman -S --noconfirm less # <<< should handle other distros here
2023-12-29 23:47:33 -05:00
fi
# 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
# Grab said header
2023-06-19 16:34:51 -04:00
curl -s https://old.doordesk.net/doors
2023-12-30 20:57:14 -05:00
echo -e "Doors are sturdier than windows.
-------------------------------------------------------"
2023-06-15 16:36:30 -04:00
echo -e "\nSetup for $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
2023-06-15 16:36:30 -04:00
echo -e "\nVerifying base requirements..."
sudo pacman -S --needed --noconfirm git base-devel
2023-06-15 16:36:30 -04:00
if test -d .doors; then
echo -e "\n$HOME/.doors found, checking for updates..."
cd .doors
git pull
cd
2023-06-15 16:36:30 -04:00
else
echo -e "\n$HOME/.doors not found, creating..."
git clone https://github.com/adoyle0/Doors.git .doors
fi
2023-06-15 16:36:30 -04:00
2023-06-19 20:25:03 -04:00
$HOME/.doors/scripts/install_arch
2023-06-15 16:36:30 -04:00
2023-12-30 19:50:42 -05:00
# These are broken for now
# 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
else
echo "$OS is not supported by this script at this time."
exit 1
2023-06-15 16:36:30 -04:00
fi
2023-12-30 00:30:18 -05:00
# Init and update awesome widgets submodule
cd $HOME/.doors
git submodule init && git submodule update
# Copy configs and make a backup if it already exists
echo -e "\nInstalling Configs..."
cd $HOME/.doors/configs
2023-06-15 16:36:30 -04:00
for file in *
do
echo -e "\n$file..."
2023-06-19 20:25:03 -04:00
cp -rbv $file $HOME/.config/
done
2023-06-17 19:32:45 -04:00
# Link shell files and make a backup if it already exists
echo -e "\nLinking shell..."
cp -sbv $HOME/.config/shell/profile ~/.zprofile
cp -sbv $HOME/.config/x11/xinitrc ~/.xinitrc
2023-06-17 19:32:45 -04:00
# Copy scripts and make a backup if it already exists
echo -e "\nInstalling Scripts..."
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"
fi
2023-06-18 21:16:12 -04:00
cp -rbv bin $HOME/.local
2023-06-18 21:16:12 -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
# Give less time to catch up and tell it we're done
2023-06-15 18:19:24 -04:00
sleep 1 && killall -s SIGINT less