github.com/artpar/rclone@v1.67.3/cmd/serve/dlna/data/data.go (about) 1 // Package data provides utilities for DLNA server. 2 // The "go:generate" directive compiles static assets by running assets_generate.go 3 // 4 //go:generate go run assets_generate.go 5 package data 6 7 import ( 8 "fmt" 9 "io" 10 "text/template" 11 12 "github.com/artpar/rclone/fs" 13 ) 14 15 // GetTemplate returns the rootDesc XML template 16 func GetTemplate() (tpl *template.Template, err error) { 17 templateFile, err := Assets.Open("rootDesc.xml.tmpl") 18 if err != nil { 19 return nil, fmt.Errorf("get template open: %w", err) 20 } 21 22 defer fs.CheckClose(templateFile, &err) 23 24 templateBytes, err := io.ReadAll(templateFile) 25 if err != nil { 26 return nil, fmt.Errorf("get template read: %w", err) 27 } 28 29 var templateString = string(templateBytes) 30 31 tpl, err = template.New("rootDesc").Parse(templateString) 32 if err != nil { 33 return nil, fmt.Errorf("get template parse: %w", err) 34 } 35 36 return 37 }