URI: 
       Fix live reload mount logic with sub paths - 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 952a3194962dd91f87e5bd227a1591b00c39ff05
   DIR parent 321418f22a4a94b87f01e1403a2f4a71106461fb
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Thu, 15 Aug 2019 16:44:44 +0200
       
       Fix live reload mount logic with sub paths
       
       Fixes #6209
       
       Diffstat:
         M hugolib/filesystems/basefs.go       |       8 ++++----
         M hugolib/filesystems/basefs_test.go  |      17 ++++++++++++-----
       
       2 files changed, 16 insertions(+), 9 deletions(-)
       ---
   DIR diff --git a/hugolib/filesystems/basefs.go b/hugolib/filesystems/basefs.go
       @@ -243,11 +243,11 @@ func (d *SourceFilesystem) MakePathRelative(filename string) string {
                        currentPath := meta.Filename()
        
                        if strings.HasPrefix(filename, currentPath) {
       -                        if path := meta.Path(); path != "" {
       -                                currentPath = strings.TrimRight(strings.TrimSuffix(currentPath, path), filePathSeparator)
       +                        rel := strings.TrimPrefix(filename, currentPath)
       +                        if mp := meta.Path(); mp != "" {
       +                                rel = filepath.Join(mp, rel)
                                }
       -
       -                        return strings.TrimPrefix(filename, currentPath)
       +                        return strings.TrimPrefix(rel, filePathSeparator)
                        }
                }
                return ""
   DIR diff --git a/hugolib/filesystems/basefs_test.go b/hugolib/filesystems/basefs_test.go
       @@ -360,14 +360,19 @@ func TestMakePathRelative(t *testing.T) {
                workDir := "mywork"
                v.Set("workingDir", workDir)
        
       -        c.Assert(fs.Source.MkdirAll(filepath.Join(workDir, "dist"), 0777), qt.IsNil)
       -        c.Assert(fs.Source.MkdirAll(filepath.Join(workDir, "static"), 0777), qt.IsNil)
       +        c.Assert(fs.Source.MkdirAll(filepath.Join(workDir, "dist", "d1"), 0777), qt.IsNil)
       +        c.Assert(fs.Source.MkdirAll(filepath.Join(workDir, "static", "d2"), 0777), qt.IsNil)
       +        c.Assert(fs.Source.MkdirAll(filepath.Join(workDir, "dust", "d2"), 0777), qt.IsNil)
        
                moduleCfg := map[string]interface{}{
                        "mounts": []interface{}{
                                map[string]interface{}{
                                        "source": "dist",
       -                                "target": "static/dist",
       +                                "target": "static/mydist",
       +                        },
       +                        map[string]interface{}{
       +                                "source": "dust",
       +                                "target": "static/foo/bar",
                                },
                                map[string]interface{}{
                                        "source": "static",
       @@ -388,8 +393,10 @@ func TestMakePathRelative(t *testing.T) {
                sfs := bfs.Static[""]
                c.Assert(sfs, qt.Not(qt.IsNil))
        
       -        c.Assert(sfs.MakePathRelative(filepath.Join(workDir, "static", "foo.txt")), qt.Equals, filepath.FromSlash("/foo.txt"))
       -        c.Assert(sfs.MakePathRelative(filepath.Join(workDir, "dist", "foo.txt")), qt.Equals, filepath.FromSlash("/dist/foo.txt"))
       +        c.Assert(sfs.MakePathRelative(filepath.Join(workDir, "dist", "d1", "foo.txt")), qt.Equals, filepath.FromSlash("mydist/d1/foo.txt"))
       +        c.Assert(sfs.MakePathRelative(filepath.Join(workDir, "static", "d2", "foo.txt")), qt.Equals, filepath.FromSlash("d2/foo.txt"))
       +        c.Assert(sfs.MakePathRelative(filepath.Join(workDir, "dust", "d3", "foo.txt")), qt.Equals, filepath.FromSlash("foo/bar/d3/foo.txt"))
       +
        }
        
        func checkFileCount(fs afero.Fs, dirname string, c *qt.C, expected int) {