mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2025-07-04 12:42:55 +00:00
54 lines
1.8 KiB
C#
54 lines
1.8 KiB
C#
namespace AIStudio.Tools.PluginSystem;
|
|
|
|
public static partial class PluginFactory
|
|
{
|
|
public static void RemovePluginAsync(Guid pluginId)
|
|
{
|
|
if (!IS_INITIALIZED)
|
|
return;
|
|
|
|
LOG.LogWarning($"Try to remove plugin with ID: {pluginId}");
|
|
|
|
//
|
|
// Remove the plugin from the available plugins list:
|
|
//
|
|
var availablePluginToRemove = AVAILABLE_PLUGINS.FirstOrDefault(p => p.Id == pluginId);
|
|
if (availablePluginToRemove == null)
|
|
{
|
|
LOG.LogWarning($"No plugin found with ID: {pluginId}");
|
|
return;
|
|
}
|
|
|
|
AVAILABLE_PLUGINS.Remove(availablePluginToRemove);
|
|
|
|
//
|
|
// Remove the plugin from the running plugins list:
|
|
//
|
|
var runningPluginToRemove = RUNNING_PLUGINS.FirstOrDefault(p => p.Id == pluginId);
|
|
if (runningPluginToRemove == null)
|
|
LOG.LogWarning($"No running plugin found with ID: {pluginId}");
|
|
else
|
|
RUNNING_PLUGINS.Remove(runningPluginToRemove);
|
|
|
|
//
|
|
// Delete the plugin directory:
|
|
//
|
|
var pluginDirectory = Path.Join(CONFIGURATION_PLUGINS_ROOT, availablePluginToRemove.Id.ToString());
|
|
if (Directory.Exists(pluginDirectory))
|
|
{
|
|
try
|
|
{
|
|
Directory.Delete(pluginDirectory, true);
|
|
LOG.LogInformation($"Plugin directory '{pluginDirectory}' deleted successfully.");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LOG.LogError(ex, $"Failed to delete plugin directory '{pluginDirectory}'.");
|
|
}
|
|
}
|
|
else
|
|
LOG.LogWarning($"Plugin directory '{pluginDirectory}' does not exist.");
|
|
|
|
LOG.LogInformation($"Plugin with ID: {pluginId} removed successfully.");
|
|
}
|
|
} |