diff options
Diffstat (limited to 'modules/client.go')
-rw-r--r-- | modules/client.go | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/modules/client.go b/modules/client.go index c6f43298d..7d2175c94 100644 --- a/modules/client.go +++ b/modules/client.go @@ -614,10 +614,19 @@ func (c *Client) shouldVendor(path string) bool { } func (c *Client) createThemeDirname(modulePath string, isProjectMod bool) (string, error) { + invalid := errors.Errorf("invalid module path %q; must be relative to themesDir when defined outside of the project", modulePath) + modulePath = filepath.Clean(modulePath) + if filepath.IsAbs(modulePath) { + if isProjectMod { + return modulePath, nil + } + return "", invalid + } + moduleDir := filepath.Join(c.ccfg.ThemesDir, modulePath) if !isProjectMod && !strings.HasPrefix(moduleDir, c.ccfg.ThemesDir) { - return "", errors.Errorf("invalid module path %q; must be relative to themesDir when defined outside of the project", modulePath) + return "", invalid } return moduleDir, nil } |