From cacbf8335d51a8635961f8be8a3358f5a98ab942 Mon Sep 17 00:00:00 2001
From: Houkime <>
Date: Fri, 7 Jul 2023 13:14:30 +0000
Subject: [PATCH] fix(backups): actually mount if asked for an inplace restore

---
 selfprivacy_api/backup/backuppers/restic_backupper.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/selfprivacy_api/backup/backuppers/restic_backupper.py b/selfprivacy_api/backup/backuppers/restic_backupper.py
index 7f16a91..565a084 100644
--- a/selfprivacy_api/backup/backuppers/restic_backupper.py
+++ b/selfprivacy_api/backup/backuppers/restic_backupper.py
@@ -219,9 +219,16 @@ class ResticBackupper(AbstractBackupper):
             raise ValueError("cannot restore without knowing where to!")
 
         with tempfile.TemporaryDirectory() as dir:
-            self.do_restore(snapshot_id, target=dir, verify=verify)
+            if verify:
+                self.do_restore(snapshot_id, target=dir, verify=verify)
+                snapshot_root = dir
+            else:  # attempting inplace restore via mount + sync
+                self.mount_repo(dir)
+                snapshot_root = join(dir, "ids", snapshot_id)
+
+            assert snapshot_root is not None
             for folder in folders:
-                src = join(dir, folder.strip("/"))
+                src = join(snapshot_root, folder.strip("/"))
                 if not exists(src):
                     raise ValueError(
                         f"there is no such path: {src}. We tried to find {folder}"