summaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorsuchmememanyskill <38142618+suchmememanyskill@users.noreply.github.com>2023-06-19 15:24:24 +0200
committerGitHub <noreply@github.com>2023-06-19 06:24:24 -0700
commit4029a436374f12bd558a5bac1eb7d35f192a9fea (patch)
tree65085084c886e793f97fc0a160e25a6e75903bb5 /backend
parent57f4555350c669e4cb098b48691975be79838468 (diff)
downloaddecky-loader-4029a436374f12bd558a5bac1eb7d35f192a9fea.tar.gz
decky-loader-4029a436374f12bd558a5bac1eb7d35f192a9fea.zip
Fix uninstalling plugins (#485)
* Fix bad debug print statement in uninstall plugin * Safely remove element from hidden plugin/plugin order list
Diffstat (limited to 'backend')
-rw-r--r--backend/browser.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/backend/browser.py b/backend/browser.py
index ab71a89d..6fa85466 100644
--- a/backend/browser.py
+++ b/backend/browser.py
@@ -129,7 +129,7 @@ class PluginBrowser:
logger.warning(f"Plugin {name} not installed, skipping uninstallation")
except Exception as e:
logger.error(f"Plugin {name} in {plugin_dir} was not uninstalled")
- logger.error(f"Error at %s", exc_info=e)
+ logger.error(f"Error at {str(e)}", exc_info=e)
if self.loader.watcher:
self.loader.watcher.disabled = False
@@ -239,10 +239,15 @@ class PluginBrowser:
name (string): The name of the plugin
"""
hidden_plugins = self.settings.getSetting("hiddenPlugins", [])
- hidden_plugins.remove(name)
- self.settings.setSetting("hiddenPlugins", hidden_plugins)
+ if name in hidden_plugins:
+ hidden_plugins.remove(name)
+ self.settings.setSetting("hiddenPlugins", hidden_plugins)
- plugin_order = self.settings.getSetting("pluginOrder")
- plugin_order.remove(name)
- self.settings.setSetting("pluginOrder", plugin_order)
+
+ plugin_order = self.settings.getSetting("pluginOrder", [])
+
+ if name in plugin_order:
+ plugin_order.remove(name)
+ self.settings.setSetting("pluginOrder", plugin_order)
+
logger.debug("Removed any settings for plugin %s", name)