mirror of
https://github.com/fish2018/pansou.git
synced 2025-11-25 03:14:59 +08:00
环境变量指定启用插件列表
This commit is contained in:
43
main.go
43
main.go
@@ -10,6 +10,7 @@ import (
|
||||
"os/signal"
|
||||
"runtime"
|
||||
"sort"
|
||||
"strings"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
@@ -104,8 +105,10 @@ func startServer() {
|
||||
// 初始化插件管理器
|
||||
pluginManager := plugin.NewPluginManager()
|
||||
|
||||
// 注册所有全局插件(通过init函数自动注册到全局注册表)
|
||||
pluginManager.RegisterAllGlobalPlugins()
|
||||
// 注册全局插件(根据配置过滤)
|
||||
if config.AppConfig.AsyncPluginEnabled {
|
||||
pluginManager.RegisterGlobalPluginsWithFilter(config.AppConfig.EnabledPlugins)
|
||||
}
|
||||
|
||||
// 更新默认并发数(如果插件被禁用则使用0)
|
||||
pluginCount := 0
|
||||
@@ -303,21 +306,33 @@ func printServiceInfo(port string, pluginManager *plugin.PluginManager) {
|
||||
|
||||
// 只有当插件功能启用时才输出插件信息
|
||||
if config.AppConfig.AsyncPluginEnabled {
|
||||
// 输出插件信息(按优先级排序)
|
||||
fmt.Println("已加载插件:")
|
||||
plugins := pluginManager.GetPlugins()
|
||||
|
||||
// 按优先级排序(优先级数字越小越靠前)
|
||||
sort.Slice(plugins, func(i, j int) bool {
|
||||
// 优先级相同时按名称排序
|
||||
if plugins[i].Priority() == plugins[j].Priority() {
|
||||
return plugins[i].Name() < plugins[j].Name()
|
||||
if len(plugins) > 0 {
|
||||
// 显示是否有特定的插件过滤
|
||||
if len(config.AppConfig.EnabledPlugins) > 0 {
|
||||
fmt.Printf("已启用指定插件 (%d个):\n", len(plugins))
|
||||
} else {
|
||||
fmt.Printf("已加载所有插件 (%d个):\n", len(plugins))
|
||||
}
|
||||
return plugins[i].Priority() < plugins[j].Priority()
|
||||
})
|
||||
|
||||
for _, p := range plugins {
|
||||
fmt.Printf(" - %s (优先级: %d)\n", p.Name(), p.Priority())
|
||||
// 按优先级排序(优先级数字越小越靠前)
|
||||
sort.Slice(plugins, func(i, j int) bool {
|
||||
// 优先级相同时按名称排序
|
||||
if plugins[i].Priority() == plugins[j].Priority() {
|
||||
return plugins[i].Name() < plugins[j].Name()
|
||||
}
|
||||
return plugins[i].Priority() < plugins[j].Priority()
|
||||
})
|
||||
|
||||
for _, p := range plugins {
|
||||
fmt.Printf(" - %s (优先级: %d)\n", p.Name(), p.Priority())
|
||||
}
|
||||
} else {
|
||||
if len(config.AppConfig.EnabledPlugins) > 0 {
|
||||
fmt.Printf("未找到指定的插件: %s\n", strings.Join(config.AppConfig.EnabledPlugins, ", "))
|
||||
} else {
|
||||
fmt.Println("未加载到任何插件")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user