From f9b351438b9c48dd0ddd527846babd1ef57140b6 Mon Sep 17 00:00:00 2001 From: Terin Stock Date: Fri, 29 Apr 2022 02:00:25 -0700 Subject: [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 --- internal/email/util.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'internal/email/util.go') diff --git a/internal/email/util.go b/internal/email/util.go index 52290dbe4..c543db755 100644 --- a/internal/email/util.go +++ b/internal/email/util.go @@ -28,14 +28,16 @@ import ( ) func loadTemplates(templateBaseDir string) (*template.Template, error) { - cwd, err := os.Getwd() - if err != nil { - return nil, fmt.Errorf("error getting current working directory: %s", err) + if !filepath.IsAbs(templateBaseDir) { + cwd, err := os.Getwd() + if err != nil { + return nil, fmt.Errorf("error getting current working directory: %s", err) + } + templateBaseDir = filepath.Join(cwd, templateBaseDir) } // look for all templates that start with 'email_' - tmPath := filepath.Join(cwd, fmt.Sprintf("%semail_*", templateBaseDir)) - return template.ParseGlob(tmPath) + return template.ParseGlob(filepath.Join(templateBaseDir, "email_*")) } // https://datatracker.ietf.org/doc/html/rfc2822 -- cgit v1.2.3