From 1bdb041bc4972ef09f7e5c0c05dfa7cee5c0daa1 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sat, 23 May 2020 21:43:18 +0100 Subject: [PATCH] Improve install.sh script --- install.sh | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index db864d3..34b1e1d 100755 --- a/install.sh +++ b/install.sh @@ -64,7 +64,7 @@ install_symlinks() { # Symlink each path for i in "${SYMLINKS[@]}"; do - symlink "$SYMLINK_PATH/$i" "$TARGET/.$i" + dot_symlink "$i" "$SYMLINK_PATH" "$TARGET" done } @@ -124,6 +124,26 @@ symlink() { fi } +dot_symlink() { + local name="$1" + local source="$2/${name}" + local target="$3/.${name}" + local cur_name + + if [ ! -e "$target" ]; then + cur_name="$(dirname "$name")" + while [ "$cur_name" != "." ] && [ "$cur_name" != "/" ]; do + source="../${source}" + cur_name="$(dirname "$cur_name")" + done + mkdir -p "$(dirname "$target")" + ok "symlink: $target --> $source" + ln -s "$source" "$target" + else + info "symlink: $target exists" + fi +} + git_clone() { local clone_url="$1" local target="$2"