Unverified Commit 815a3f3c authored by Kroese's avatar Kroese Committed by GitHub
Browse files

feat: Support multiple shared folders (#810)

parent 69b45029
Loading
Loading
Loading
Loading
+53 −47
Original line number Diff line number Diff line
@@ -14,25 +14,16 @@ if [[ "$DHCP" == [Yy1]* ]]; then
  interface="$VM_NET_DEV"
fi

share="/data"

if [ ! -d "$share" ] && [ -d "$STORAGE/data" ]; then
  share="$STORAGE/data"
fi

if [ ! -d "$share" ] && [ -d "/shared" ]; then
  share="/shared"
fi

if [ ! -d "$share" ] && [ -d "$STORAGE/shared" ]; then
  share="$STORAGE/shared"
fi
addShare() {
  local dir="$1"
  local name="$2"
  local comment="$3"

mkdir -p "$share"
  mkdir -p "$dir" || return 1

if [ -z "$(ls -A "$share")" ]; then
  if [ -z "$(ls -A "$dir")" ]; then

  chmod 777 "$share"
    chmod 777 "$dir"

    {      echo "--------------------------------------------------------"
            echo " $APP for Docker v$(</run/version)..."
@@ -44,18 +35,32 @@ if [ -z "$(ls -A "$share")" ]; then
            echo "To change its location, include the following bind mount in your compose file:"
            echo ""
            echo "  volumes:"
          echo "    - \"/home/user/example:/data\""
            echo "    - \"/home/example:/${name,,}\""
            echo ""
            echo "Or in your run command:"
            echo ""
          echo "  -v \"/home/user/example:/data\""
            echo "  -v \"/home/example:/${name,,}\""
            echo ""
          echo "Replace the example path /home/user/example with the desired shared folder."
            echo "Replace the example path /home/example with the desired shared folder."
            echo ""
  } | unix2dos > "$share/readme.txt"
    } | unix2dos > "$dir/readme.txt"

  fi

  {      echo ""
          echo "[$name]"
          echo "    path = $dir"
          echo "    comment = $comment"
          echo "    writable = yes"
          echo "    guest ok = yes"
          echo "    guest only = yes"
          echo "    force user = root"
          echo "    force group = root"
  } >> "/etc/samba/smb.conf"

  return 0
}

{      echo "[global]"
        echo "    server string = Dockur"
        echo "    netbios name = $hostname"
@@ -72,17 +77,18 @@ fi
        echo "    printing = bsd"
        echo "    printcap name = /dev/null"
        echo "    disable spoolss = yes"
        echo ""
        echo "[Data]"
        echo "    path = $share"
        echo "    comment = Shared"
        echo "    writable = yes"
        echo "    guest ok = yes"
        echo "    guest only = yes"
        echo "    force user = root"
        echo "    force group = root"
} > "/etc/samba/smb.conf"

share="/data"
[ ! -d "$share" ] && [ -d "$STORAGE/data" ] && share="$STORAGE/data"
[ ! -d "$share" ] && [ -d "/shared" ] && share="/shared"
[ ! -d "$share" ] && [ -d "$STORAGE/shared" ] && share="$STORAGE/shared"

addShare "$share" "Data" "Shared" || error "Failed to create shared folder!"

[ -d "/data2" ] && addShare "/data2" "Data2" "Shared"
[ -d "/data3" ] && addShare "/data3" "Data3" "Shared"

if ! smbd; then
  error "Samba daemon failed to start!"
  smbd -i --debug-stdout || true