#!/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// 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" == /docker/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 if [ ! -d "$dir_path" ]; then local result=$(sudo mkdir -p "$dir_path") if [ "$silent_flag" == "loud" ]; then checkSuccess "Creating $folder_name directory" fi else if [ "$silent_flag" == "loud" ]; then isNotice "$folder_name directory already exists" fi fi local result=$(sudo chown $user_name:$user_name "$dir_path") if [ "$silent_flag" == "loud" ]; then checkSuccess "Updating $folder_name with $user_name ownership" fi done }