#!/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." >&2 exit 4 fi full_src=$(realpath -s "$src") full_dst=$(realpath -s "$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 ./fish/abbr.fish "$HOME/.config/fish/abbr.fish" link ./fish/config.fish "$HOME/.config/fish/config.fish" link ./flavours/config.toml "$HOME/.config/flavours/config.toml" 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/.tmux.conf"