NewTemplateFileSystem returns a macaron.TemplateFileSystem instance for embedded assets. The argument "dir" can be used to serve subset of embedded assets. Template file found under the "customDir" on disk has higher precedence over embedded assets.
(dir, customDir string)
| 54 | // The argument "dir" can be used to serve subset of embedded assets. Template file |
| 55 | // found under the "customDir" on disk has higher precedence over embedded assets. |
| 56 | func NewTemplateFileSystem(dir, customDir string) macaron.TemplateFileSystem { |
| 57 | if dir != "" && !strings.HasSuffix(dir, "/") { |
| 58 | dir += "/" |
| 59 | } |
| 60 | |
| 61 | var err error |
| 62 | var tmplFiles []macaron.TemplateFile |
| 63 | names := mustNames(files) |
| 64 | for _, name := range names { |
| 65 | if !strings.HasPrefix(name, dir) { |
| 66 | continue |
| 67 | } |
| 68 | // Check if corresponding custom file exists |
| 69 | var data []byte |
| 70 | fpath := path.Join(customDir, name) |
| 71 | if osutil.IsFile(fpath) { |
| 72 | data, err = os.ReadFile(fpath) |
| 73 | } else { |
| 74 | data, err = files.ReadFile(name) |
| 75 | } |
| 76 | if err != nil { |
| 77 | panic(err) |
| 78 | } |
| 79 | name = strings.TrimPrefix(name, dir) |
| 80 | ext := path.Ext(name) |
| 81 | name = strings.TrimSuffix(name, ext) |
| 82 | tmplFiles = append(tmplFiles, macaron.NewTplFile(name, data, ext)) |
| 83 | } |
| 84 | return &fileSystem{files: tmplFiles} |
| 85 | } |
no test coverage detected