Anbother attempt to not hang on bad plguins.
This commit is contained in:
parent
682d66e08f
commit
987be0eee2
@ -232,7 +232,6 @@ class PluginSystemManager:
|
||||
return self._active_plugins
|
||||
|
||||
def setActivePlugins(self, activePlugins):
|
||||
"""Set active plugins and sync their state."""
|
||||
logger.info(f"Setting active plugins: {activePlugins}")
|
||||
|
||||
# Make sure we have scanned for plugins first
|
||||
@ -240,21 +239,34 @@ class PluginSystemManager:
|
||||
logger.info("No plugins found, rescanning...")
|
||||
self.rescanPlugins()
|
||||
|
||||
# Double-check we found plugins after rescanning
|
||||
if not self._plugins and activePlugins:
|
||||
logger.warning("No plugins found after rescanning but active plugins requested. Continuing anyway.")
|
||||
|
||||
self._active_plugins = activePlugins
|
||||
|
||||
# Log active vs available plugins
|
||||
# Create a clean list of valid active plugins
|
||||
available_plugins = [p.get_module_name() for p in self.plugins]
|
||||
logger.info(f"Available plugins: {available_plugins}")
|
||||
logger.info(f"Active plugins: {self._active_plugins}")
|
||||
valid_active_plugins = []
|
||||
|
||||
# Find missing plugins
|
||||
missing_plugins = [p for p in self._active_plugins if p not in available_plugins]
|
||||
if missing_plugins:
|
||||
logger.warning(f"Active plugins not found: {missing_plugins}")
|
||||
for plugin_name in activePlugins:
|
||||
# Check for exact match first
|
||||
if plugin_name in available_plugins:
|
||||
valid_active_plugins.append(plugin_name)
|
||||
continue
|
||||
|
||||
# Try case-insensitive match
|
||||
plugin_name_lower = plugin_name.lower()
|
||||
matched = False
|
||||
for available in available_plugins:
|
||||
if available.lower() == plugin_name_lower:
|
||||
# Use the correctly cased name from available plugins
|
||||
valid_active_plugins.append(available)
|
||||
matched = True
|
||||
logger.info(f"Case-insensitive match: requested '{plugin_name}', using '{available}'")
|
||||
break
|
||||
|
||||
if not matched:
|
||||
logger.warning(f"Plugin '{plugin_name}' not found, skipping")
|
||||
|
||||
# Only use valid plugins
|
||||
self._active_plugins = valid_active_plugins
|
||||
|
||||
logger.info(f"Using verified active plugins: {self._active_plugins}")
|
||||
|
||||
try:
|
||||
self.syncAllPluginsActive()
|
||||
|
Loading…
x
Reference in New Issue
Block a user