auto_code_mcp.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package system
  2. import (
  3. "context"
  4. "github.com/flipped-aurora/gin-vue-admin/server/global"
  5. "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
  6. "github.com/flipped-aurora/gin-vue-admin/server/utils"
  7. "github.com/flipped-aurora/gin-vue-admin/server/utils/autocode"
  8. "os"
  9. "path/filepath"
  10. "text/template"
  11. )
  12. func (s *autoCodeTemplate) CreateMcp(ctx context.Context, info request.AutoMcpTool) (toolFilePath string, err error) {
  13. mcpTemplatePath := filepath.Join(global.GVA_CONFIG.AutoCode.Root, global.GVA_CONFIG.AutoCode.Server, "resource", "mcp", "tools.tpl")
  14. mcpToolPath := filepath.Join(global.GVA_CONFIG.AutoCode.Root, global.GVA_CONFIG.AutoCode.Server, "mcp")
  15. var files *template.Template
  16. templateName := filepath.Base(mcpTemplatePath)
  17. files, err = template.New(templateName).Funcs(autocode.GetTemplateFuncMap()).ParseFiles(mcpTemplatePath)
  18. if err != nil {
  19. return
  20. }
  21. fileName := utils.HumpToUnderscore(info.Name)
  22. toolFilePath = filepath.Join(mcpToolPath, fileName+".go")
  23. f, err := os.Create(toolFilePath)
  24. if err != nil {
  25. return
  26. }
  27. defer f.Close()
  28. // 执行模板,将内容写入文件
  29. err = files.Execute(f, info)
  30. if err != nil {
  31. return
  32. }
  33. return
  34. }