1
All checks were successful
Build Multi-Platform Binaries / build-frontend (push) Successful in 38s
Build Multi-Platform Binaries / build-binaries (amd64, darwin, server, false) (push) Successful in 50s
Build Multi-Platform Binaries / build-binaries (amd64, linux, client, true) (push) Successful in 1m6s
Build Multi-Platform Binaries / build-binaries (amd64, linux, server, true) (push) Successful in 1m4s
Build Multi-Platform Binaries / build-binaries (amd64, windows, client, true) (push) Successful in 41s
Build Multi-Platform Binaries / build-binaries (amd64, windows, server, true) (push) Successful in 1m44s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, client, true) (push) Successful in 52s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, server, true) (push) Successful in 1m10s
Build Multi-Platform Binaries / build-binaries (arm64, darwin, server, false) (push) Successful in 48s
Build Multi-Platform Binaries / build-binaries (arm64, linux, client, true) (push) Successful in 36s
Build Multi-Platform Binaries / build-binaries (arm64, linux, server, true) (push) Successful in 1m24s
Build Multi-Platform Binaries / build-binaries (arm64, windows, server, false) (push) Successful in 1m35s

This commit is contained in:
Flik
2025-12-27 23:21:38 +08:00
parent 90e20798b6
commit f43256d33d

View File

@@ -563,7 +563,42 @@ func (s *Server) InstallPluginsToClient(clientID string, plugins []string) error
return fmt.Errorf("client %s not found", clientID)
}
return s.sendInstallPlugins(cs.Session, plugins)
// 发送安装请求到客户端
if err := s.sendInstallPlugins(cs.Session, plugins); err != nil {
return err
}
// 更新数据库中客户端的已安装插件列表
client, err := s.clientStore.GetClient(clientID)
if err != nil {
return fmt.Errorf("failed to get client: %w", err)
}
// 获取插件版本信息并添加到客户端插件列表
for _, pluginName := range plugins {
// 检查是否已安装
found := false
for _, cp := range client.Plugins {
if cp.Name == pluginName {
found = true
break
}
}
if !found {
// 获取插件信息
version := "1.0.0"
if handler, err := s.pluginRegistry.Get(pluginName); err == nil && handler != nil {
version = handler.Metadata().Version
}
client.Plugins = append(client.Plugins, db.ClientPlugin{
Name: pluginName,
Version: version,
Enabled: true,
})
}
}
return s.clientStore.UpdateClient(client)
}
// sendInstallPlugins 发送安装插件请求