From 659d2712b7b226fef351c0c97d744b1b3ec0d078 Mon Sep 17 00:00:00 2001 From: Cheong Yip Date: Wed, 29 Nov 2023 22:31:41 +1100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Add=20creation=20of=20target=20p?= =?UTF-8?q?arent=20folder=20in=20create=5Fsymbolic=5Flinks.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the script for creating symbolic links, a line was added to create the parent directory of the target file, if it does not exist already. This is to prevent errors when trying to create a symbolic link where the target folder path does not exist yet. The folder creation step is added to both 'if' and 'elif' conditions to handle all possible cases. --- src/os/create_symbolic_links.sh | 9 +++++++++ src/os/installs/macos/android_tools.sh | 0 src/os/installs/macos/browsers.sh | 0 src/os/installs/macos/capture_tools.sh | 0 src/os/installs/macos/cli_utilities.sh | 0 src/os/installs/macos/communication_tools.sh | 0 src/os/installs/macos/compression_tools.sh | 0 src/os/installs/macos/desktop_utilities.sh | 0 src/os/installs/macos/development_tools.sh | 0 src/os/installs/macos/downloaders.sh | 0 src/os/installs/macos/gaming.sh | 0 src/os/installs/macos/git.sh | 0 src/os/installs/macos/image_tools.sh | 0 src/os/installs/macos/misc_tools.sh | 0 src/os/installs/macos/music.sh | 0 src/os/installs/macos/networking_tools.sh | 0 src/os/installs/macos/office_tools.sh | 0 src/os/installs/macos/remote_access_tools.sh | 0 src/os/installs/macos/system_tools.sh | 0 src/os/installs/macos/tmux.sh | 0 src/os/installs/macos/video_tools.sh | 0 src/os/installs/macos/vim.sh | 0 src/os/installs/macos/virtualisation_tools.sh | 0 src/os/installs/macos/web_font_tools.sh | 0 24 files changed, 9 insertions(+) mode change 100644 => 100755 src/os/installs/macos/android_tools.sh mode change 100644 => 100755 src/os/installs/macos/browsers.sh mode change 100644 => 100755 src/os/installs/macos/capture_tools.sh mode change 100644 => 100755 src/os/installs/macos/cli_utilities.sh mode change 100644 => 100755 src/os/installs/macos/communication_tools.sh mode change 100644 => 100755 src/os/installs/macos/compression_tools.sh mode change 100644 => 100755 src/os/installs/macos/desktop_utilities.sh mode change 100644 => 100755 src/os/installs/macos/development_tools.sh mode change 100644 => 100755 src/os/installs/macos/downloaders.sh mode change 100644 => 100755 src/os/installs/macos/gaming.sh mode change 100644 => 100755 src/os/installs/macos/git.sh mode change 100644 => 100755 src/os/installs/macos/image_tools.sh mode change 100644 => 100755 src/os/installs/macos/misc_tools.sh mode change 100644 => 100755 src/os/installs/macos/music.sh mode change 100644 => 100755 src/os/installs/macos/networking_tools.sh mode change 100644 => 100755 src/os/installs/macos/office_tools.sh mode change 100644 => 100755 src/os/installs/macos/remote_access_tools.sh mode change 100644 => 100755 src/os/installs/macos/system_tools.sh mode change 100644 => 100755 src/os/installs/macos/tmux.sh mode change 100644 => 100755 src/os/installs/macos/video_tools.sh mode change 100644 => 100755 src/os/installs/macos/vim.sh mode change 100644 => 100755 src/os/installs/macos/virtualisation_tools.sh mode change 100644 => 100755 src/os/installs/macos/web_font_tools.sh diff --git a/src/os/create_symbolic_links.sh b/src/os/create_symbolic_links.sh index 53f5d15a8..aa146217e 100755 --- a/src/os/create_symbolic_links.sh +++ b/src/os/create_symbolic_links.sh @@ -68,6 +68,7 @@ create_symlinks() { # using regex '.*\/\(.*\)' and replacing topic folder with its contents # For example, 'shell/bash_aliases' to 'bash_aliases' targetFile="$HOME/.$(printf "%s" "$i" | sed "s/[^\/]*\/\(.*\)/\1/g")" + targetFolder="$(printf "%s" "$targetFile" | sed "s|/[^/]*$||")" if [ "$(readlink "$targetFile")" == "$sourceFile" ]; then @@ -75,6 +76,10 @@ create_symlinks() { elif [ ! -e "$targetFile" ] || $skipQuestions; then # -e : True if file exists (regardless of type). + if [ "$targetFolder" != "$HOME" ]; then + mkdir -p "$targetFolder" + fi + execute_without_spinner \ "ln -fs $sourceFile $targetFile" \ "$targetFile → $sourceFile" @@ -91,6 +96,10 @@ create_symlinks() { rm -rf "$targetFile" + if [ "$targetFolder" != "$HOME" ]; then + mkdir -p "$targetFolder" + fi + execute_without_spinner \ "ln -fs $sourceFile $targetFile" \ "$targetFile → $sourceFile" diff --git a/src/os/installs/macos/android_tools.sh b/src/os/installs/macos/android_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/browsers.sh b/src/os/installs/macos/browsers.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/capture_tools.sh b/src/os/installs/macos/capture_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/cli_utilities.sh b/src/os/installs/macos/cli_utilities.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/communication_tools.sh b/src/os/installs/macos/communication_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/compression_tools.sh b/src/os/installs/macos/compression_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/desktop_utilities.sh b/src/os/installs/macos/desktop_utilities.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/development_tools.sh b/src/os/installs/macos/development_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/downloaders.sh b/src/os/installs/macos/downloaders.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/gaming.sh b/src/os/installs/macos/gaming.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/git.sh b/src/os/installs/macos/git.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/image_tools.sh b/src/os/installs/macos/image_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/misc_tools.sh b/src/os/installs/macos/misc_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/music.sh b/src/os/installs/macos/music.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/networking_tools.sh b/src/os/installs/macos/networking_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/office_tools.sh b/src/os/installs/macos/office_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/remote_access_tools.sh b/src/os/installs/macos/remote_access_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/system_tools.sh b/src/os/installs/macos/system_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/tmux.sh b/src/os/installs/macos/tmux.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/video_tools.sh b/src/os/installs/macos/video_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/vim.sh b/src/os/installs/macos/vim.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/virtualisation_tools.sh b/src/os/installs/macos/virtualisation_tools.sh old mode 100644 new mode 100755 diff --git a/src/os/installs/macos/web_font_tools.sh b/src/os/installs/macos/web_font_tools.sh old mode 100644 new mode 100755