feat: 插件删除功能

This commit is contained in:
Junyan Qin
2024-11-09 23:25:26 +08:00
parent 601fa0ac7f
commit 15482e398b
6 changed files with 39 additions and 7 deletions

View File

@@ -31,6 +31,7 @@ class PluginInstaller(metaclass=abc.ABCMeta):
async def uninstall_plugin(
self,
plugin_name: str,
task_context: taskmgr.TaskContext = taskmgr.TaskContext.placeholder(),
):
"""卸载插件
"""

View File

@@ -119,6 +119,7 @@ class GitHubRepoInstaller(installer.PluginInstaller):
async def uninstall_plugin(
self,
plugin_name: str,
task_context: taskmgr.TaskContext = taskmgr.TaskContext.placeholder(),
):
"""卸载插件
"""
@@ -127,7 +128,9 @@ class GitHubRepoInstaller(installer.PluginInstaller):
if plugin_container is None:
raise errors.PluginInstallerError('插件不存在或未成功加载')
else:
shutil.rmtree(plugin_container.pkg_path)
task_context.trace("删除插件目录...", "uninstall-plugin")
await aioshutil.rmtree(plugin_container.pkg_path)
task_context.trace("完成, 重新加载以生效.", "uninstall-plugin")
async def update_plugin(
self,

View File

@@ -83,10 +83,11 @@ class PluginManager:
async def uninstall_plugin(
self,
plugin_name: str,
task_context: taskmgr.TaskContext = taskmgr.TaskContext.placeholder(),
):
"""卸载插件
"""
await self.installer.uninstall_plugin(plugin_name)
await self.installer.uninstall_plugin(plugin_name, task_context)
plugin_container = self.get_plugin_by_name(plugin_name)