router: correctly use local FS for custom HTML

pull/347/head
Harvey Tindall 4 months ago
parent 11eae035d9
commit 9df2a82b6d
No known key found for this signature in database
GPG Key ID: BBC65952848FB1A2

@ -24,19 +24,29 @@ func (app *appContext) loadHTML(router *gin.Engine) {
app.err.Fatalf("Couldn't access template directory: \"%s\"", templatePath) app.err.Fatalf("Couldn't access template directory: \"%s\"", templatePath)
return return
} }
loadFiles := make([]string, len(htmlFiles)) loadInternal := []string{}
for i, f := range htmlFiles { loadExternal := []string{}
for _, f := range htmlFiles {
if _, err := os.Stat(filepath.Join(customPath, f.Name())); os.IsNotExist(err) { if _, err := os.Stat(filepath.Join(customPath, f.Name())); os.IsNotExist(err) {
app.debug.Printf("Using default \"%s\"", f.Name()) app.debug.Printf("Using default \"%s\"", f.Name())
loadFiles[i] = FSJoin(templatePath, f.Name()) loadInternal = append(loadInternal, FSJoin(templatePath, f.Name()))
} else { } else {
app.info.Printf("Using custom \"%s\"", f.Name()) app.info.Printf("Using custom \"%s\"", f.Name())
loadFiles[i] = filepath.Join(filepath.Join(customPath, f.Name())) loadExternal = append(loadExternal, filepath.Join(filepath.Join(customPath, f.Name())))
} }
} }
tmpl, err := template.ParseFS(localFS, loadFiles...) var tmpl *template.Template
if err != nil { if len(loadInternal) != 0 {
app.err.Fatalf("Failed to load templates: %v", err) tmpl, err = template.ParseFS(localFS, loadInternal...)
if err != nil {
app.err.Fatalf("Failed to load templates: %v", err)
}
}
if len(loadExternal) != 0 {
tmpl, err = tmpl.ParseFiles(loadExternal...)
if err != nil {
app.err.Fatalf("Failed to load external templates: %v", err)
}
} }
router.SetHTMLTemplate(tmpl) router.SetHTMLTemplate(tmpl)
} }

Loading…
Cancel
Save