dotfiles/install.sh

56 lines
1.9 KiB
Bash

#!/bin/sh
# shellcheck disable=SC1091
# variables
LOCAL_BIN_DIR=${HOME}/.local/bin
LOCAL_GIT_DIR="${HOME}/.local/git"
XDG_CACHE_HOME="/tmp/${USER}-cache"
XDG_CONFIG_HOME="${HOME}/.config"
XDG_DATA_HOME="${HOME}/.local/share"
XDG_STATE_HOME="${HOME}/.local/state"
if [ "${1}" = "linux-gui" ]; then
# install configs
for i in "${LOCAL_GIT_DIR}"/dotfiles/config/linux-gui/_conf/*; do
rm -rf "${XDG_CONFIG_HOME:?}/$(basename "${i}")"
ln -sf "${LOCAL_GIT_DIR}/dotfiles/config/linux-gui/_conf/$(basename "${i}")" "${XDG_CONFIG_HOME}/"
done
# install scripts
for i in "${LOCAL_GIT_DIR}"/dotfiles/config/linux-gui/_scripts/*; do
ln -sf "${LOCAL_GIT_DIR}/dotfiles/config/linux-gui/_scripts/$(basename "${i}")" "${LOCAL_BIN_DIR}/"
done
else
# clean + prepare local dirs
rm -rf ~/.cache ~/.config/_cache ~/.fdignore ~/.fzf.bash ~/.fzf.zsh ~/.gitconfig ~/.gitignore ~/.history ~/.hushlogin ~/.tmux.conf ~/.vim* ~/.zcomp* ~/.zsh*
rm -rf "${XDG_CACHE_HOME}" "${XDG_DATA_HOME}/nvim" "${XDG_STATE_HOME}/nvim"
mkdir -p "${XDG_CACHE_HOME}" "${XDG_CONFIG_HOME}" "${XDG_DATA_HOME}"
chmod 700 "${XDG_CACHE_HOME}"
# prepare repository
mkdir -p "${LOCAL_GIT_DIR}"
rm -rf "${LOCAL_GIT_DIR}/dotfiles"
git clone https://git.sr.ht/~ftpd/dotfiles "${LOCAL_GIT_DIR}/dotfiles"
# zsh modules
mkdir -p "${LOCAL_GIT_DIR}/zsh_modules"
for module in mfaerevaag/wd romkatv/powerlevel10k zdharma-continuum/fast-syntax-highlighting; do
rm -rf "${LOCAL_GIT_DIR}/zsh_modules/${module#*/}"
git clone https://github.com/${module} "${LOCAL_GIT_DIR}/zsh_modules/${module#*/}"
done
# configs
for i in "${LOCAL_GIT_DIR}"/dotfiles/config/common/*; do
rm -rf "${XDG_CONFIG_HOME:?}/$(basename "${i}")"
ln -sf "${LOCAL_GIT_DIR}/dotfiles/config/common/$(basename "${i}")" "${XDG_CONFIG_HOME}/"
done
# execute post-install script
printf "Running post-install script... "
. "${LOCAL_GIT_DIR}/dotfiles/_scripts/post-install.sh"
echo "done."
fi