From 38327fa71c1746ec840f3601cd9bbadc2ed28f1c Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Thu, 17 Feb 2022 19:17:09 -0600 Subject: [PATCH] Addon Manager: Force recache on custom repo change --- src/Mod/AddonManager/AddonManager.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/Mod/AddonManager/AddonManager.py b/src/Mod/AddonManager/AddonManager.py index 4dabfca86a..4907424c30 100644 --- a/src/Mod/AddonManager/AddonManager.py +++ b/src/Mod/AddonManager/AddonManager.py @@ -28,6 +28,7 @@ import os import shutil import stat import tempfile +import hashlib from datetime import date, timedelta from typing import Dict @@ -320,6 +321,26 @@ class CommandAddonManager: ) ) + # See if the user has changed the custom repos list since our last re-cache: + stored_hash = pref.GetString("CustomRepoHash", "") + custom_repos = pref.GetString("CustomRepositories", "") + if custom_repos: + hasher = hashlib.sha1() + hasher.update(custom_repos.encode("utf-8")) + new_hash = hasher.hexdigest() + else: + new_hash = "" + if new_hash != stored_hash: + stored_hash = pref.SetString("CustomRepoHash", new_hash) + self.update_cache = True + FreeCAD.Console.PrintMessage( + translate( + "AddonsInstaller", + "Custom repo list changed, forcing recache...\n", + ) + ) + + # If we are checking for updates automatically, hide the Check for updates button: autocheck = pref.GetBool("AutoCheck", False) if autocheck: