elas-arch-config/install.sh

89 lines
2.3 KiB
Bash
Executable file

#!/bin/sh
CONFIGFILES_REPOSITORY="https://git.pew.io/technowitch/elas-arch-config.git"
CONFIGFILES_DIRECTORY="~/dotfiles"
# This script installs these dotfiles.
set -e -u
printf '\e[1mInstalling dotfiles\e[0m\n'
case "$(uname)" in
'Linux')
if [ ! -x "$(command -v pacman)" ]; then
printf '\e[1mArch Linux is the only distro currently supported for automated setup\e[0m\n'
exit 1
fi
# Install Git if not installed
if [ ! -x "$(command -v git)" ]; then
printf '\e[1mInstalling Git\e[0m\n'
sudo pacman -S --noconfirm --needed git
fi
# git clone these dotfiles if not done yet
if [ ! -d "$CONFIGFILES_DIRECTORY" ]; then
printf '\e[1mCloning dotfiles repo\e[0m\n'
git clone "$CONFIGFILES_REPOSITORY" "$CONFIGFILES_DIRECTORY"
fi
# Install Stow if not installed
sudo pacman -S --noconfirm --needed stow
# Stow subdirectories of dotfiles
printf '\e[1mLinking dotfiles to your home directory\e[0m\n'
for dir in "$CONFIGFILES_DIRECTORY"/*/; do
stow --dir "$CONFIGFILES_DIRECTORY" --target "$HOME" "$(basename "${dir}")"
done
# Install Paru if not installed
if [ ! -x "$(command -v paru)" ]; then
printf '\e[1mInstalling Paru\e[0m\n'
git clone https://aur.archlinux.org/paru-bin.git /tmp/paru
(cd /tmp/paru && makepkg -si)
fi
# Set colors for pacman
sudo sed -i 's/#Color/Color\nILoveCandy/' /etc/pacman.conf
# Install Pacmanfile if not installed
if [ ! -x "$(command -v pacmanfile)" ]; then
printf '\e[1mInstalling Pacmanfile\e[0m\n'
paru -S --noconfirm --needed pacmanfile
fi
# Install packages using Pacmanfile
printf '\e[1mInstalling desired packages using Pacmanfile\e[0m\n'
pacmanfile sync --noconfirm
# Change npm folder
if [ -x "$(command -v npm)" ]; then
npm set prefix="$HOME/.local"
fi
;;
# Default
*)
printf '\e[1mOS not supported for automated setup. Please install manually.\e[0m\n'
exit 1
;;
esac
# Install prezto
if [ ! -d ~/.zprezto ]; then
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
fi
# Use zsh
if [ -x "$(command -v zsh)" ] && [ "$SHELL" != "$(command -v zsh)" ]; then
chsh -s "$(command -v zsh)"
fi
# Run full system upgrade
. "$CONFIGFILES_DIRECTORY/zsh/.zsh.d/functions.zsh"
EDITOR=nvim pacu
printf '\e[1mYour config is successfully installed. Please reboot to finalize.\e[0m\n'