fix: embed fruit.svg to resolve container initialization failure
Build and Push Docker Image / build (push) Successful in 2m10s

This commit is contained in:
2026-02-25 23:38:18 -08:00
parent 7cd611140e
commit 35cd040122
2 changed files with 27 additions and 11 deletions
+25 -9
View File
@@ -1,12 +1,15 @@
package data package data
import ( import (
_ "embed"
"encoding/xml" "encoding/xml"
"fmt" "fmt"
"os"
"strings" "strings"
) )
//go:embed fruit.svg
var fruitSVGContent []byte
type Icon struct { type Icon struct {
Name string Name string
Paths []string Paths []string
@@ -42,16 +45,24 @@ type Path struct {
D string `xml:"d,attr"` D string `xml:"d,attr"`
} }
func LoadIcons(filePath string) error { func LoadIconsFromEmbed() error {
data, err := os.ReadFile(filePath)
if err != nil { return err }
var svg SVG var svg SVG
if err := xml.Unmarshal(data, &svg); err != nil { return err } if err := xml.Unmarshal(fruitSVGContent, &svg); err != nil {
return err
}
var objectsG *G var objectsG *G
for i := range svg.Groups { for i := range svg.Groups {
if svg.Groups[i].ID == "objects" { objectsG = &svg.Groups[i]; break } if svg.Groups[i].ID == "objects" {
objectsG = &svg.Groups[i]
break
}
} }
if objectsG == nil { return nil }
if objectsG == nil {
return nil
}
var fruitIcons []Icon var fruitIcons []Icon
for i, g := range objectsG.Groups { for i, g := range objectsG.Groups {
paths := collectPaths(g) paths := collectPaths(g)
@@ -62,6 +73,7 @@ func LoadIcons(filePath string) error {
}) })
} }
} }
IconCategories["fruits"] = fruitIcons IconCategories["fruits"] = fruitIcons
return nil return nil
} }
@@ -70,8 +82,12 @@ func collectPaths(g G) []string {
var paths []string var paths []string
for _, p := range g.Paths { for _, p := range g.Paths {
d := strings.TrimSpace(p.D) d := strings.TrimSpace(p.D)
if d != "" { paths = append(paths, d) } if d != "" {
paths = append(paths, d)
}
}
for _, subG := range g.Groups {
paths = append(paths, collectPaths(subG)...)
} }
for _, subG := range g.Groups { paths = append(paths, collectPaths(subG)...) }
return paths return paths
} }
+2 -2
View File
@@ -23,8 +23,8 @@ func (t *learnNumberTool) Emoji() string { return "🔢" }
func (t *learnNumberTool) Init() error { func (t *learnNumberTool) Init() error {
fmt.Println("Initializing Learn-Number tool...") fmt.Println("Initializing Learn-Number tool...")
// 动态加载匿名对象 // 从内嵌资源加载匿名对象
return data.LoadIcons("pkg/learnnumber/data/fruit.svg") return data.LoadIconsFromEmbed()
} }
func (t *learnNumberTool) RegisterRoutes(r *gin.RouterGroup) { func (t *learnNumberTool) RegisterRoutes(r *gin.RouterGroup) {