From 97eb1fae387dcfa9ceb121167aa977d430c11dde Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Wed, 27 Nov 2019 11:23:12 +0100 Subject: loadTemplate: support loading mulitple templates --- frontend/frontend.go | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) (limited to 'frontend/frontend.go') diff --git a/frontend/frontend.go b/frontend/frontend.go index ff7ace835bb8..c49b00517581 100644 --- a/frontend/frontend.go +++ b/frontend/frontend.go @@ -1,6 +1,7 @@ package frontend import ( + "fmt" "io/ioutil" "net/http" @@ -16,23 +17,34 @@ import ( //TODO: log last update -//loadTemplate loads a single template from statikFS and returns a template object -func loadTemplate(templateName string, funcMap template.FuncMap) (*template.Template, error) { - tmpl := template.New(templateName).Funcs(funcMap) - statikFS, err := fs.New() - if err != nil { - return nil, err +//loadTemplate loads a list of templates, relative to the statikFS root, and a FuncMap, and returns a template object +func loadTemplate(templateNames []string, funcMap template.FuncMap) (*template.Template, error) { + if len(templateNames) == 0 { + return nil, fmt.Errorf("templateNames can't be empty") } - r, err := statikFS.Open("/" + templateName) + tmpl := template.New(templateNames[0]).Funcs(funcMap) + statikFS, err := fs.New() if err != nil { return nil, err } - defer r.Close() - contents, err := ioutil.ReadAll(r) - if err != nil { - return nil, err + + for _, templateName := range templateNames { + r, err := statikFS.Open("/" + templateName) + if err != nil { + return nil, err + } + defer r.Close() + contents, err := ioutil.ReadAll(r) + if err != nil { + return nil, err + } + tmpl, err = tmpl.Parse(string(contents)) + if err != nil { + return nil, err + } } - return tmpl.Parse(string(contents)) + + return tmpl, nil } // MakeFrontend configures the router and returns a new Frontend struct -- cgit 1.4.1