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  }