From 539a27d04047a057c687339527868c545c9da1ef Mon Sep 17 00:00:00 2001 From: Brian Zalewski Date: Sat, 24 Sep 2022 15:25:27 +0000 Subject: [PATCH] Update dotfiles/.local/bin/symlink-to-files --- dotfiles/.local/bin/symlink-to-files | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 dotfiles/.local/bin/symlink-to-files diff --git a/dotfiles/.local/bin/symlink-to-files b/dotfiles/.local/bin/symlink-to-files new file mode 100644 index 00000000..b301d26d --- /dev/null +++ b/dotfiles/.local/bin/symlink-to-files @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +# Example: find . -type l -exec /path/tos/script {} + + +set -e + +for link; do + test -h "$link" || continue + + dir=$(dirname "$link") + reltarget=$(readlink "$link") + case $reltarget in + /*) abstarget=$reltarget;; + *) abstarget=$dir/$reltarget;; + esac + + rm -fv "$link" + cp -afv "$abstarget" "$link" || { + # on failure, restore the symlink + rm -rfv "$link" + ln -sfv "$reltarget" "$link" + } +done