fix: embed fruit.svg to resolve container initialization failure
Build and Push Docker Image / build (push) Successful in 2m10s
Build and Push Docker Image / build (push) Successful in 2m10s
This commit is contained in:
@@ -1,12 +1,15 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"encoding/xml"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
//go:embed fruit.svg
|
||||
var fruitSVGContent []byte
|
||||
|
||||
type Icon struct {
|
||||
Name string
|
||||
Paths []string
|
||||
@@ -42,16 +45,24 @@ type Path struct {
|
||||
D string `xml:"d,attr"`
|
||||
}
|
||||
|
||||
func LoadIcons(filePath string) error {
|
||||
data, err := os.ReadFile(filePath)
|
||||
if err != nil { return err }
|
||||
func LoadIconsFromEmbed() error {
|
||||
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
|
||||
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
|
||||
for i, g := range objectsG.Groups {
|
||||
paths := collectPaths(g)
|
||||
@@ -62,6 +73,7 @@ func LoadIcons(filePath string) error {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
IconCategories["fruits"] = fruitIcons
|
||||
return nil
|
||||
}
|
||||
@@ -70,8 +82,12 @@ func collectPaths(g G) []string {
|
||||
var paths []string
|
||||
for _, p := range g.Paths {
|
||||
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
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@ func (t *learnNumberTool) Emoji() string { return "🔢" }
|
||||
|
||||
func (t *learnNumberTool) Init() error {
|
||||
fmt.Println("Initializing Learn-Number tool...")
|
||||
// 动态加载匿名对象
|
||||
return data.LoadIcons("pkg/learnnumber/data/fruit.svg")
|
||||
// 从内嵌资源加载匿名对象
|
||||
return data.LoadIconsFromEmbed()
|
||||
}
|
||||
|
||||
func (t *learnNumberTool) RegisterRoutes(r *gin.RouterGroup) {
|
||||
|
||||
Reference in New Issue
Block a user