#!/bin/sh link() { src="$1" dst="$2" if [ "$src" = "" ] || [ "$dst" = "" ]; then echo "Source or destination parameter missing." >&2 exit 2 fi if [ ! -e "$src" ]; then echo "Source file not found." >&2 exit 3 fi if [ -e "$dst" ] && [ ! -L "$dst" ]; then echo "Destination exists and is not a symlink: $dst" >&2 exit 4 fi full_src=$(realpath -s "$src") full_dst=$(realpath -s "$dst") mkdir -p "$(dirname "$full_dst")" if [ -L "$dst" ]; then if [ "$full_dst" != "$full_src" ]; then ln -s -f "$full_src" "$full_dst" fi else ln -s "$full_src" "$full_dst" fi } cd "$(dirname "$(readlink -f "$0")")" || exit 1 link ./alacritty/alacritty.yml "$HOME/.config/alacritty/alacritty.yml" link ./alacritty/theme.mustache "$HOME/.local/share/flavours/base16/templates/alacritty/templates/custom.mustache" link ./alot/theme.mustache "$HOME/.local/share/flavours/base16/templates/alot/templates/custom.mustache" link ./fish/abbr.fish "$HOME/.config/fish/abbr.fish" link ./fish/config.fish "$HOME/.config/fish/config.fish" link ./fish/theme.mustache "$HOME/.local/share/flavours/base16/templates/fish/templates/custom.mustache" link ./flavours/config.toml "$HOME/.config/flavours/config.toml" link ./fontconfig/fonts.conf "$HOME/.config/fontconfig/fonts.conf" fc-cache --really-force link ./newsboat/config "$HOME/.config/newsboat/config" link ./nvim/init.lua "$HOME/.config/nvim/init.lua" link ./nvim/vim_plugins.sh "$HOME/scripts/vim_plugins.sh" link ./tmux/tmux.conf "$HOME/.config/tmux/tmux.conf" link "$HOME/.config/tmux/tmux.conf" "$HOME/.tmux.conf" link ./tmux/theme.mustache "$HOME/.local/share/flavours/base16/templates/tmux/templates/custom.mustache" link ./vivid/theme.mustache "$HOME/.local/share/flavours/base16/templates/vivid/templates/custom.mustache"