From 08efa815abe04d7cb9db12135bd4e23caa86a805 Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Wed, 14 Dec 2022 15:19:33 -0800 Subject: [PATCH] Fix created dotfile directory permissions This ensures that nested directories each have 0700 permissions applied to them. --- setup.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/setup.sh b/setup.sh index 1229f28..2e7e62b 100755 --- a/setup.sh +++ b/setup.sh @@ -51,9 +51,15 @@ elif [ $remove -eq 0 ]; then if [[ -h "$target" ]] && [[ "$source" == "$(readlink -f "$target")" ]]; then echo "Skipping '${source}' -> '${target}' link as it is already linked" else - # NOTE: This applies 0700 permissions only to the deepest directory - # shellcheck disable=SC2174 - mkdir -m 0700 -p "$(dirname "$target")" + target_dir="$(dirname "$target")" + while [ ! -d "$target_dir" ]; do + target_parent="$target_dir" + while [ ! -d "$(dirname "$target_parent")" ]; do + target_parent="$(dirname "$target_parent")" + done + mkdir -vm 0700 "$target_parent" + done + ln -sv "$source" "$target" fi done