#!/bin/bash

createFolders()
{
    local silent_flag="$1"
    local user_name="$2"

    for dir_path in "${@:3}"; do
        local folder_name=$(basename "$dir_path")
        local clean_dir=$(echo "$dir_path" | sed 's#//*#/#g')

        # Under /docker/containers/<app>/ the owner is the docker install user
        # (the rootless container + host generators run as it), so create the dir
        # AS that user via runFileOp — creating it as the right owner avoids a
        # chown-to-another-user the unprivileged runtime can't do. Mirrors
        # createTouch; the $user_name hint is advisory for these paths.
        if [[ "$clean_dir" == "$containers_dir"* || "$clean_dir" == "${LP_CONTAINERS_DIR:-/libreportal-containers}"/* ]]; then
            if [ ! -d "$dir_path" ]; then
                local result=$(runFileOp mkdir -p "$dir_path")
                [ "$silent_flag" == "loud" ] && checkSuccess "Creating $folder_name directory"
            elif [ "$silent_flag" == "loud" ]; then
                isNotice "$folder_name directory already exists"
            fi
            continue
        fi

        # Non-container path = manager-owned control plane -> create AS the
        # manager (runInstallOp); no root, no chown.
        if [ ! -d "$dir_path" ]; then
            local result=$(runInstallOp mkdir -p "$dir_path")
            [ "$silent_flag" == "loud" ] && checkSuccess "Creating $folder_name directory"
        elif [ "$silent_flag" == "loud" ]; then
            isNotice "$folder_name directory already exists"
        fi
    done
}
