+# sets up the serverpilot storage location for a user hosted web site.
+function maybe_create_site_storage()
+{
+ local our_app="$1"; shift
+ # make sure the base path for storage of all the apps for this user exists.
+ local full_path="$BASE_PATH/$our_app"
+ if [ ! -d "$full_path" ]; then
+ mkdir -p $full_path
+ check_result "The app storage path could not be created.\n Path in question is: $full_path"
+ fi
+
+ # now give the web server some access to the folder. this is crucial since the folders
+ # can be hosted in any user folder, and the group permissions will not necessarily be correct already.
+ local chow_path="$full_path"
+ # only the first chmod is recursive; the rest just apply to the specific folder of interest.
+ chmod -R g+rx "$chow_path"
+ # walk backwards up the path and fix perms.
+ while [[ $chow_path != $HOME ]]; do
+echo chow path is now $chow_path
+ chmod g+rx "$chow_path"
+ check_result "Failed to add group permissions on the path: $chow_path"
+ # reassert the user's ownership of any directories we might have just created.
+ chown $(logname) "$chow_path"
+ check_result "changing ownership to user failed on the path: $chow_path"
+ chow_path="$(dirname "$chow_path")"
+ done
+}
+