#!/bin/bash borgRestoreSnapshot() { local idx="$1" local snapshot_id="$2" local target_dir="$3" local include_path="$4" if [[ -z "$snapshot_id" || -z "$target_dir" ]]; then isError "borgRestoreSnapshot requires snapshot_id and target_dir" return 1 fi borgEnvExport "$idx" || return 1 sudo mkdir -p "$target_dir" isNotice "Restoring $snapshot_id from $(resticLocationName "$idx") → $target_dir" local rc if [[ -n "$include_path" ]]; then local stripped="${include_path#/}" ( cd "$target_dir" && sudo -E -u "$docker_install_user" borg extract "::$snapshot_id" "$stripped" ) rc=$? else ( cd "$target_dir" && sudo -E -u "$docker_install_user" borg extract "::$snapshot_id" ) rc=$? fi borgEnvUnset return $rc } borgDumpFile() { local idx="$1" local snapshot_id="$2" local file_path="$3" local target_file="$4" borgEnvExport "$idx" || return 1 local stripped="${file_path#/}" if [[ -n "$target_file" ]]; then sudo -E -u "$docker_install_user" borg extract --stdout "::$snapshot_id" "$stripped" | sudo tee "$target_file" >/dev/null else sudo -E -u "$docker_install_user" borg extract --stdout "::$snapshot_id" "$stripped" fi local rc=$? borgEnvUnset return $rc }