blob: 8b5b768e6e9f23dba2a557650c2c9711cac6bde2 [file] [log] [blame]
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package result
import (
"io/fs"
"path/filepath"
"text/template"
)
var (
AllTemplates map[string]*template.Template
)
func init() {
AllTemplates = make(map[string]*template.Template)
}
func Initialize(c *ResultConfig) error {
Config = c
return initializeTemplates()
}
func initializeTemplates() error {
for _, templateCategory := range Config.Templates {
for _, templatePath := range templateCategory.Paths {
templatePath = filepath.Join(Config.FuchsiaDir, templatePath)
if err := filepath.WalkDir(templatePath, func(currentPath string, info fs.DirEntry, err error) error {
if err != nil {
return err
}
if !info.IsDir() {
if temp, err := template.New(filepath.Base(currentPath)).ParseFiles(currentPath); err != nil {
return err
} else {
relPath, err := filepath.Rel(templatePath, currentPath)
if err != nil {
return err
}
plusVal(NumInitTemplates, currentPath)
AllTemplates[relPath] = temp
}
}
return nil
}); err != nil {
return err
}
}
}
return nil
}