diff options
Diffstat (limited to '.config/symlinks.sh')
-rwxr-xr-x | .config/symlinks.sh | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/.config/symlinks.sh b/.config/symlinks.sh new file mode 100755 index 0000000..a3db6ae --- /dev/null +++ b/.config/symlinks.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +sed -e '/^\s*$/d' -e '/#/d' symlinks | while read _path _link; do + path="$(sed -rn 's|[^/]+/|../|g;s|/[^/]+$|/|p' <<<"$_link")${_path}" + link="$HOME/$_link" + if [[ -L "$link" ]]; then + rm -f "$link" + fi + if [[ -e "$link" ]]; then + echo "ERROR: file exists: $link" >> /dev/stderr + else + mkdir -p "${link%/*}" + ln -s "$path" "$link" + fi +done |