URI: 
       modules: Allow absolute paths for project imports - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit beabc8d998249ecc5dd522d696dc6233a29131c2
   DIR parent 332b65e4ccb6ac0d606de2a1b23f5189c72542be
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Fri, 30 Oct 2020 10:14:08 +0100
       
       modules: Allow absolute paths for project imports
       
       Fixes #7910
       
       Diffstat:
         M modules/client.go                   |      11 ++++++++++-
         M modules/client_test.go              |       9 +++++++++
       
       2 files changed, 19 insertions(+), 1 deletion(-)
       ---
   DIR diff --git 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
        }
   DIR diff --git a/modules/client_test.go b/modules/client_test.go
       @@ -15,6 +15,7 @@ package modules
        
        import (
                "bytes"
       +        "fmt"
                "os"
                "path/filepath"
                "testing"
       @@ -157,6 +158,14 @@ project github.com/gohugoio/hugoTestModules1_darwin/modh2_2_2@v1.3.0+vendor
                        dirname, err = client.createThemeDirname("../../foo", false)
                        c.Assert(err, qt.Not(qt.IsNil))
        
       +                absDir := filepath.Join(client.ccfg.WorkingDir, "..", "..")
       +                dirname, err = client.createThemeDirname(absDir, true)
       +                c.Assert(err, qt.IsNil)
       +                c.Assert(dirname, qt.Equals, absDir)
       +                dirname, err = client.createThemeDirname(absDir, false)
       +                fmt.Println(dirname)
       +                c.Assert(err, qt.Not(qt.IsNil))
       +
                })
        
        }