#!/bin/bash

# Source every per-location location.config file so the CFG_BACKUP_LOC_<idx>_*
# variables are available in the env. Called from the libreportal_configs
# scan path (see scripts/source/loading/scan_files.sh) so it runs at the
# same time as the rest of the config files.

sourceBackupLocations()
{
    local dir
    dir=$(backupLocationsDir)
    [[ ! -d "$dir" ]] && return 0

    # configs/backup/locations/ lives in the manager-owned configs tree (not
    # the dockerinstall-owned containers tree), so a plain find works fine.
    # runFileOp was adding ~50 ms of sudo-shell overhead per invocation for
    # no benefit. Fall back to runFileOp only if the directory isn't readable
    # for some reason (relocated tree, custom permissions, …).
    local find_cmd=(find)
    if [[ ! -r "$dir" || ! -x "$dir" ]] && declare -f runFileOp >/dev/null 2>&1; then
        find_cmd=(runFileOp find)
    fi

    local cfg
    while IFS= read -r -d '' cfg; do
        [[ -f "$cfg" ]] && source "$cfg"
    done < <("${find_cmd[@]}" "$dir" -mindepth 2 -maxdepth 2 -name location.config -type f -print0 2>/dev/null)
}
