Addon Manager: Improve stability when cache update interrupted

This commit is contained in:
Chris Hennes
2022-01-08 19:47:57 -06:00
parent 9a933a6015
commit efa08946f2
4 changed files with 109 additions and 16 deletions

View File

@@ -220,6 +220,11 @@ class AddonManagerRepo:
if self.repo_type == AddonManagerRepo.RepoType.WORKBENCH:
return True
elif self.repo_type == AddonManagerRepo.RepoType.PACKAGE:
if self.metadata is None:
FreeCAD.Console.PrintWarning(
f"Addon Manager internal error: lost metadata for package {self.name}\n"
)
return False
content = self.metadata.Content
if not content:
FreeCAD.Console.PrintLog(
@@ -236,6 +241,11 @@ class AddonManagerRepo:
if self.repo_type == AddonManagerRepo.RepoType.MACRO:
return True
elif self.repo_type == AddonManagerRepo.RepoType.PACKAGE:
if self.metadata is None:
FreeCAD.Console.PrintWarning(
f"Addon Manager internal error: lost metadata for package {self.name}\n"
)
return False
content = self.metadata.Content
return "macro" in content
else:
@@ -245,6 +255,11 @@ class AddonManagerRepo:
"""Determine if this package contains a preference pack"""
if self.repo_type == AddonManagerRepo.RepoType.PACKAGE:
if self.metadata is None:
FreeCAD.Console.PrintWarning(
f"Addon Manager internal error: lost metadata for package {self.name}\n"
)
return False
content = self.metadata.Content
return "preferencepack" in content
else: