#!/usr/bin/env sh cd -P -- "$(readlink -e "$(dirname "$0")")" || exit 255 echo "=> Checking dependencies..." command -v stow >/dev/null 2>&1 || { echo "Please install GNU Stow!"; exit 1; } sleep 0.5 echo "=> Determining OS..." if [ "$(uname -o)" = "Android" ] || [ "$(lsb_release -si)" = "Fedora" ]; then set -- "alacritty" "nvim" "scripts" "zsh" INSTALL="pkg install" elif [ "$(lsb_release -si)" = "Debian" ] || [ "$(lsb_release -si)" = "Ubuntu" ]; then set -- "scripts" "zsh" INSTALL="sudo apt install" elif [ "$(lsb_release -si)" = "Artix" ]; then set -- "alacritty" "mako" "nvim" "scripts" "sway" "swaylock" "swaynag" "waybar" "zsh" INSTALL="sudo pacman -S" else echo "OS not supported!" exit 1 fi sleep 0.5 echo "=> Installing dotfile packages..." for pkg in "$@"; do sleep 0.1 echo " -> Stowing $pkg" # Symlink only the individual files instead of the entire directory [ "$pkg" = "zsh" ] && mkdir -p "$HOME/.config/$pkg" [ "$pkg" = "scripts" ] && mkdir -p "$HOME/.local/bin" [ "$pkg" = "nvim" ] && NVIM=1 stow -t "$HOME" --ignore="README.md" "$pkg" done if [ $NVIM -eq 1 ] && [ ! -f "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim ]; then sleep 0.5 echo "=> Installing vim-plug and plugins for Neovim" command -v nvim >/dev/null 2>&1 || $INSTALL nvim curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim nvim --headless +PlugInstall +qa fi sleep 0.5 echo "=> Done!"