diff options
author | 2022-04-29 02:00:25 -0700 | |
---|---|---|
committer | 2022-04-29 11:00:25 +0200 | |
commit | f9b351438b9c48dd0ddd527846babd1ef57140b6 (patch) | |
tree | b59fcfe3d59c50f9aefcee0e9909fcafb43ca372 /internal/router/template.go | |
parent | [documentaton] Fix port number in Reverse proxy section (#506) (diff) | |
download | gotosocial-f9b351438b9c48dd0ddd527846babd1ef57140b6.tar.xz |
[feature] allow absolute path to templates (#507)
Only attempt to join the `WebTemplateBaseDir` with the current working
directory if the user has not configured an absolute path to the
template directory.
This changeset also makes a similar change to the testrig, allowing
tests to configure an alternative location for the templates directory.
Fixes #411
Signed-off-by: Terin Stock <terinjokes@gmail.com>
Diffstat (limited to 'internal/router/template.go')
-rw-r--r-- | internal/router/template.go | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/internal/router/template.go b/internal/router/template.go index 50d5f1a82..7cc9850e0 100644 --- a/internal/router/template.go +++ b/internal/router/template.go @@ -33,20 +33,22 @@ import ( // LoadTemplates loads html templates for use by the given engine func loadTemplates(engine *gin.Engine) error { - cwd, err := os.Getwd() - if err != nil { - return fmt.Errorf("error getting current working directory: %s", err) - } - templateBaseDir := viper.GetString(config.Keys.WebTemplateBaseDir) - _, err = os.Stat(filepath.Join(cwd, templateBaseDir, "index.tmpl")) - if err != nil { - return fmt.Errorf("%s doesn't seem to contain the templates; index.tmpl is missing: %s", filepath.Join(cwd, templateBaseDir), err) + if !filepath.IsAbs(templateBaseDir) { + cwd, err := os.Getwd() + if err != nil { + return fmt.Errorf("error getting current working directory: %w", err) + } + + templateBaseDir = filepath.Join(cwd, viper.GetString(config.Keys.WebTemplateBaseDir)) + } + + if _, err := os.Stat(filepath.Join(templateBaseDir, "index.tmpl")); err != nil { + return fmt.Errorf("%s doesn't seem to contain the templates; index.tmpl is missing: %w", templateBaseDir, err) } - tmPath := filepath.Join(cwd, fmt.Sprintf("%s*", templateBaseDir)) - engine.LoadHTMLGlob(tmPath) + engine.LoadHTMLGlob(fmt.Sprintf("%s*", templateBaseDir)) return nil } |