From f7e023c6b71dc354f8c05489144e86024574b905 Mon Sep 17 00:00:00 2001 From: Kroese Date: Fri, 3 Oct 2025 03:26:11 +0200 Subject: [PATCH 1/4] feat: Update shared folder instructions --- src/samba.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/samba.sh b/src/samba.sh index af68071..6cc23ff 100644 --- a/src/samba.sh +++ b/src/samba.sh @@ -44,7 +44,7 @@ addShare() { echo "" echo "Using this folder you can exchange files with the host machine." echo "" - echo "To select the folder you want to share, include the following bind mount in your compose file:" + echo "To select a folder on the host for this purpose, include the following bind mount in your compose file:" echo "" echo " volumes:" echo " - \"./example:/${name,,}\"" @@ -53,7 +53,7 @@ addShare() { echo "" echo " -v \"\${PWD:-.}/example:/${name,,}\"" echo "" - echo "Replace the example path ./example with your desired shared folder." + echo "Replace the example path ./example with your desired shared folder, which then will become visible here." echo "" } | unix2dos > "$dir/readme.txt" From ee696629945ef2dd4947ab158c8226d7e699773d Mon Sep 17 00:00:00 2001 From: Kroese Date: Fri, 3 Oct 2025 04:08:46 +0200 Subject: [PATCH 2/4] fix: Refactor share directory assignment logic --- src/samba.sh | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/samba.sh b/src/samba.sh index 6cc23ff..0e39696 100644 --- a/src/samba.sh +++ b/src/samba.sh @@ -94,21 +94,29 @@ addShare() { echo " disable spoolss = yes" } > "/etc/samba/smb.conf" -share="/data" -[ ! -d "$share" ] && [ -d "$STORAGE/data" ] && share="$STORAGE/data" -[ ! -d "$share" ] && [ -d "/shared" ] && share="/shared" +share="/shared" [ ! -d "$share" ] && [ -d "$STORAGE/shared" ] && share="$STORAGE/shared" +[ ! -d "$share" ] && [ -d "/data" ] && share="/data" +[ ! -d "$share" ] && [ -d "$STORAGE/data" ] && share="$STORAGE/data" if ! addShare "$share" "Data" "Shared"; then error "Failed to add shared folder '$share'. Please check its permissions." && return 0 fi -if [ -d "/data2" ]; then - addShare "/data2" "Data2" "Shared" || error "Failed to add shared folder '/data2'. Please check its permissions." +if [ -d "/shared2" ]; then + addShare "/shared2" "Data2" "Shared" || error "Failed to add shared folder '/shared2'. Please check its permissions." +else + if [ -d "/data2" ]; then + addShare "/data2" "Data2" "Shared" || error "Failed to add shared folder '/data2'. Please check its permissions." + fi fi -if [ -d "/data3" ]; then - addShare "/data3" "Data3" "Shared" || error "Failed to add shared folder '/data3'. Please check its permissions." +if [ -d "/shared3" ]; then + addShare "/shared3" "Data3" "Shared" || error "Failed to add shared folder '/shared3'. Please check its permissions." +else + if [ -d "/data3" ]; then + addShare "/data3" "Data3" "Shared" || error "Failed to add shared folder '/data3'. Please check its permissions." + fi fi IFS=',' read -r -a dirs <<< "${SHARES:-}" From 99db4c8e5d6c28a85a5fc151212fe85b8c8e0768 Mon Sep 17 00:00:00 2001 From: Kroese Date: Fri, 3 Oct 2025 06:16:54 +0200 Subject: [PATCH 3/4] feat: Add share reference --- src/samba.sh | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/samba.sh b/src/samba.sh index 0e39696..68af033 100644 --- a/src/samba.sh +++ b/src/samba.sh @@ -27,8 +27,9 @@ html "Initializing shared folder..." addShare() { local dir="$1" - local name="$2" - local comment="$3" + local ref="$2" + local name="$3" + local comment="$4" mkdir -p "$dir" || return 1 ls -A "$dir" >/dev/null 2>&1 || return 1 @@ -47,11 +48,11 @@ addShare() { echo "To select a folder on the host for this purpose, include the following bind mount in your compose file:" echo "" echo " volumes:" - echo " - \"./example:/${name,,}\"" + echo " - \"./example:${ref}\"" echo "" echo "Or in your run command:" echo "" - echo " -v \"\${PWD:-.}/example:/${name,,}\"" + echo " -v \"\${PWD:-.}/example:${ref}\"" echo "" echo "Replace the example path ./example with your desired shared folder, which then will become visible here." echo "" @@ -94,28 +95,28 @@ addShare() { echo " disable spoolss = yes" } > "/etc/samba/smb.conf" -share="/shared" -[ ! -d "$share" ] && [ -d "$STORAGE/shared" ] && share="$STORAGE/shared" -[ ! -d "$share" ] && [ -d "/data" ] && share="/data" +share="/data" [ ! -d "$share" ] && [ -d "$STORAGE/data" ] && share="$STORAGE/data" +[ ! -d "$share" ] && [ -d "/shared" ] && share="/shared" +[ ! -d "$share" ] && [ -d "$STORAGE/shared" ] && share="$STORAGE/shared" -if ! addShare "$share" "Data" "Shared"; then +if ! addShare "$share" "/shared" "Data" "Shared"; then error "Failed to add shared folder '$share'. Please check its permissions." && return 0 fi if [ -d "/shared2" ]; then - addShare "/shared2" "Data2" "Shared" || error "Failed to add shared folder '/shared2'. Please check its permissions." + addShare "/shared2" "/shared2" "Data2" "Shared" || error "Failed to add shared folder '/shared2'. Please check its permissions." else if [ -d "/data2" ]; then - addShare "/data2" "Data2" "Shared" || error "Failed to add shared folder '/data2'. Please check its permissions." + addShare "/data2" "/shared2" "Data2" "Shared" || error "Failed to add shared folder '/data2'. Please check its permissions." fi fi if [ -d "/shared3" ]; then - addShare "/shared3" "Data3" "Shared" || error "Failed to add shared folder '/shared3'. Please check its permissions." + addShare "/shared3" "/shared3" "Data3" "Shared" || error "Failed to add shared folder '/shared3'. Please check its permissions." else if [ -d "/data3" ]; then - addShare "/data3" "Data3" "Shared" || error "Failed to add shared folder '/data3'. Please check its permissions." + addShare "/data3" "/shared3" "Data3" "Shared" || error "Failed to add shared folder '/data3'. Please check its permissions." fi fi From 7268cbb14b5f710a3b0713050a60cee2d1a323a8 Mon Sep 17 00:00:00 2001 From: Kroese Date: Fri, 3 Oct 2025 11:03:56 +0200 Subject: [PATCH 4/4] feat: File sharing --- src/samba.sh | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/samba.sh b/src/samba.sh index 68af033..34ee439 100644 --- a/src/samba.sh +++ b/src/samba.sh @@ -5,6 +5,8 @@ set -Eeuo pipefail : "${SAMBA_DEBUG:="N"}" # Disable debug : "${SAMBA_LEVEL:="1"}" # Debug log level +tmp="/tmp/smb" +rm -rf "$tmp" rm -rf /var/run/wsdd.pid [[ "$SAMBA" == [Nn]* ]] && return 0 @@ -35,8 +37,10 @@ addShare() { ls -A "$dir" >/dev/null 2>&1 || return 1 if [ -z "$(ls -A "$dir")" ]; then - chmod 777 "$dir" || return 1 + fi + + if [[ "$dir" == "$tmp" ]]; then { echo "--------------------------------------------------------" echo " $APP for Docker v$( "/etc/samba/smb.conf" -share="/data" -[ ! -d "$share" ] && [ -d "$STORAGE/data" ] && share="$STORAGE/data" -[ ! -d "$share" ] && [ -d "/shared" ] && share="/shared" +share="/shared" [ ! -d "$share" ] && [ -d "$STORAGE/shared" ] && share="$STORAGE/shared" +[ ! -d "$share" ] && [ -d "/data" ] && share="/data" +[ ! -d "$share" ] && [ -d "$STORAGE/data" ] && share="$STORAGE/data" +[ ! -d "$share" ] && share="$tmp" + +m1="Failed to add shared folder" +m2="Please check its permissions." if ! addShare "$share" "/shared" "Data" "Shared"; then - error "Failed to add shared folder '$share'. Please check its permissions." && return 0 + error "$m1 '$share'. $m2" && return 0 fi if [ -d "/shared2" ]; then - addShare "/shared2" "/shared2" "Data2" "Shared" || error "Failed to add shared folder '/shared2'. Please check its permissions." + addShare "/shared2" "/shared2" "Data2" "Shared" || error "$m1 '/shared2'. $m2" else if [ -d "/data2" ]; then - addShare "/data2" "/shared2" "Data2" "Shared" || error "Failed to add shared folder '/data2'. Please check its permissions." + addShare "/data2" "/shared2" "Data2" "Shared" || error "$m1 '/data2'. $m2." fi fi if [ -d "/shared3" ]; then - addShare "/shared3" "/shared3" "Data3" "Shared" || error "Failed to add shared folder '/shared3'. Please check its permissions." + addShare "/shared3" "/shared3" "Data3" "Shared" || error "$m1 '/shared3'. $m2" else if [ -d "/data3" ]; then - addShare "/data3" "/shared3" "Data3" "Shared" || error "Failed to add shared folder '/data3'. Please check its permissions." + addShare "/data3" "/shared3" "Data3" "Shared" || error "$m1 '/data3'. $m2" fi fi @@ -124,7 +132,7 @@ IFS=',' read -r -a dirs <<< "${SHARES:-}" for dir in "${dirs[@]}"; do [ ! -d "$dir" ] && continue dir_name=$(basename "$dir") - addShare "$dir" "$dir_name" "Shared $dir_name" || error "Failed to create shared folder for $dir!" + addShare "$dir" "/shared" "$dir_name" "Shared $dir_name" || error "Failed to create shared folder for $dir!" done # Try to repair Samba permissions