#!/bin/bash resticRestoreSnapshot() { local idx="$1" local snapshot_id="$2" local target_dir="$3" local include_path="$4" if [[ -z "$snapshot_id" || -z "$target_dir" ]]; then isError "resticRestoreSnapshot requires snapshot_id and target_dir" return 1 fi resticEnvExport "$idx" || return 1 sudo mkdir -p "$target_dir" local args=(restore "$snapshot_id" --target "$target_dir") [[ -n "$include_path" ]] && args+=(--include "$include_path") isNotice "Restoring ${snapshot_id:0:8} from $(resticLocationName "$idx") → $target_dir" sudo -E -u "$docker_install_user" restic "${args[@]}" local rc=$? resticEnvUnset return $rc } resticRestoreAppLatest() { local idx="$1" local app_name="$2" local target_dir="$3" local host="${4:-$CFG_INSTALL_NAME}" local snapshot_id snapshot_id=$(resticSnapshotLatestId "$idx" "$app_name" "$host") if [[ -z "$snapshot_id" ]]; then isError "No snapshot found in $(resticLocationName "$idx") for app=$app_name host=$host" return 1 fi local include_path="$containers_dir$app_name" resticRestoreSnapshot "$idx" "$snapshot_id" "$target_dir" "$include_path" }