From eb8775bec7606cc931513c3c1842a1ef824b0c87 Mon Sep 17 00:00:00 2001 From: ncheng89 <48044818+ncheng89@users.noreply.github.com> Date: Thu, 26 Dec 2024 15:22:40 +0800 Subject: [PATCH 1/3] Support more shared directories Control the sharing of more directories through environment variables instead of hard-coding more shared directories --- src/samba.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/samba.sh b/src/samba.sh index 3137d05b6..60367b0f0 100644 --- a/src/samba.sh +++ b/src/samba.sh @@ -86,8 +86,14 @@ share="/data" addShare "$share" "Data" "Shared" || error "Failed to create shared folder!" -[ -d "/data2" ] && addShare "/data2" "Data2" "Shared" -[ -d "/data3" ] && addShare "/data3" "Data3" "Shared" +IFS=',' read -r -a dirs <<< "${SHARED_DIRS:-}" +# Traverse the directory and create shares +for dir in "${dirs[@]}"; do + if [ -d "$dir" ]; then + dir_name=$(basename "$dir") + addShare "$dir" "$dir_name" "Shared $dir_name" || error "Failed to create shared folder for $dir!" + fi +done if ! smbd; then error "Samba daemon failed to start!" From c3f5af376184bf5e5e51adfa04e7ff1213bcdd87 Mon Sep 17 00:00:00 2001 From: ncheng89 <48044818+ncheng89@users.noreply.github.com> Date: Thu, 26 Dec 2024 15:55:25 +0800 Subject: [PATCH 2/3] Prevent shared directory names from being duplicated Prevent directory duplication and add index mechanism --- src/samba.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/samba.sh b/src/samba.sh index 60367b0f0..639d24131 100644 --- a/src/samba.sh +++ b/src/samba.sh @@ -88,10 +88,12 @@ addShare "$share" "Data" "Shared" || error "Failed to create shared folder!" IFS=',' read -r -a dirs <<< "${SHARED_DIRS:-}" # Traverse the directory and create shares +index_dir=1 for dir in "${dirs[@]}"; do if [ -d "$dir" ]; then dir_name=$(basename "$dir") - addShare "$dir" "$dir_name" "Shared $dir_name" || error "Failed to create shared folder for $dir!" + addShare "$dir" "${dir_name}_${index_dir}" "Shared $dir_name" || error "Failed to create shared folder for $dir!" + ((index_dir++)) fi done From 3b75b195e361ee2ea27dc0110dce0cd99c43efde Mon Sep 17 00:00:00 2001 From: Kroese Date: Wed, 8 Jan 2025 15:54:08 +0100 Subject: [PATCH 3/3] Update samba.sh --- src/samba.sh | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/samba.sh b/src/samba.sh index 639d24131..a57cb19d5 100644 --- a/src/samba.sh +++ b/src/samba.sh @@ -86,15 +86,14 @@ share="/data" addShare "$share" "Data" "Shared" || error "Failed to create shared folder!" -IFS=',' read -r -a dirs <<< "${SHARED_DIRS:-}" -# Traverse the directory and create shares -index_dir=1 +[ -d "/data2" ] && addShare "/data2" "Data2" "Shared" +[ -d "/data3" ] && addShare "/data3" "Data3" "Shared" + +IFS=',' read -r -a dirs <<< "${SHARES:-}" for dir in "${dirs[@]}"; do - if [ -d "$dir" ]; then - dir_name=$(basename "$dir") - addShare "$dir" "${dir_name}_${index_dir}" "Shared $dir_name" || error "Failed to create shared folder for $dir!" - ((index_dir++)) - fi + [ ! -d "$dir" ] && continue + dir_name=$(basename "$dir") + addShare "$dir" "$dir_name" "Shared $dir_name" || error "Failed to create shared folder for $dir!" done if ! smbd; then