link.sh: Move away from GNU Stow.

This commit is contained in:
raute 2023-11-30 15:22:23 +01:00
parent adfe835e7b
commit dddad2b838

52
link.sh
View File

@ -1,8 +1,48 @@
#!/bin/sh
stow --restow --target="$HOME/.config/alacritty" alacritty
stow --restow --target="$HOME/.config/fish" fish
stow --restow --target="$HOME/.config/flavours" flavours
stow --restow --target="$HOME/.config/newsboat" newsboat
stow --restow --target="$HOME/.config/nvim" nvim
stow --restow --target="$HOME/.config/tmux" tmux
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"