#!/bin/bash resticCheckLocation() { local idx="$1" local read_data="$2" resticEnvExport "$idx" || return 1 local args=(check) if [[ "$read_data" == "full" ]]; then args+=(--read-data) elif [[ -n "$read_data" ]]; then args+=(--read-data-subset "${read_data}%") fi isNotice "Checking $(resticLocationName "$idx")${read_data:+ (sample: ${read_data}%)}" runBackupOp restic "${args[@]}" local rc=$? resticEnvUnset if [[ $rc -eq 0 ]]; then isSuccessful "$(resticLocationName "$idx") integrity OK" else isError "$(resticLocationName "$idx") integrity FAILED" fi return $rc } resticCheckAllLocations() { local read_data="$1" local idx local failed=0 while IFS= read -r idx; do [[ -z "$idx" ]] && continue resticCheckLocation "$idx" "$read_data" || failed=$((failed + 1)) done < <(resticEnabledLocations) return $failed } resticLocationStats() { local idx="$1" resticEnvExport "$idx" || return 1 runBackupOp restic stats --json --no-lock 2>/dev/null local rc=$? resticEnvUnset return $rc }