Don't restore files ignored with current backup policy.

Restoring plugins will casue a headache when (they are large and) the central storage was removed in the mean time. Since it's current policy to ignore plugins _anyway_ when backing up, the simple solution is to also just don't restore them, even if they where present to begin with. Of course this is also applied to other to-be-ignored files and folder types.

should 'fix' CURA-8666
This commit is contained in:
Remco Burema 2021-11-30 17:34:49 +01:00
parent ab2cbbfecc
commit bb42fa0527
No known key found for this signature in database
GPG key ID: 215C49431D43F98C

View file

@ -181,8 +181,7 @@ class Backup:
return extracted
@staticmethod
def _extractArchive(archive: "ZipFile", target_path: str) -> bool:
def _extractArchive(self, archive: "ZipFile", target_path: str) -> bool:
"""Extract the whole archive to the given target path.
:param archive: The archive as ZipFile.
@ -201,7 +200,11 @@ class Backup:
Resources.factoryReset()
Logger.log("d", "Extracting backup to location: %s", target_path)
name_list = archive.namelist()
ignore_string = re.compile("|".join(self.IGNORED_FILES + self.IGNORED_FOLDERS))
for archive_filename in name_list:
if ignore_string.search(archive_filename):
Logger.warning(f"File ({archive_filename}) in archive that doesn't fit current backup policy; ignored.")
continue
try:
archive.extract(archive_filename, target_path)
except (PermissionError, EnvironmentError):