mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-21 21:35:28 +02:00
@@ -38,6 +38,12 @@ type Filesystem struct {
|
||||
files []*File
|
||||
Base string
|
||||
AvoidPaths []string
|
||||
|
||||
fs *hugofs.Fs
|
||||
}
|
||||
|
||||
func NewFilesystem(fs *hugofs.Fs, base string, avoidPaths ...string) *Filesystem {
|
||||
return &Filesystem{fs: fs, Base: base, AvoidPaths: avoidPaths}
|
||||
}
|
||||
|
||||
func (f *Filesystem) FilesByExts(exts ...string) []*File {
|
||||
@@ -92,7 +98,7 @@ func (f *Filesystem) captureFiles() {
|
||||
return err
|
||||
}
|
||||
if b {
|
||||
rd, err := NewLazyFileReader(hugofs.Source(), filePath)
|
||||
rd, err := NewLazyFileReader(f.fs.Source, filePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -101,7 +107,10 @@ func (f *Filesystem) captureFiles() {
|
||||
return err
|
||||
}
|
||||
|
||||
err := helpers.SymbolicWalk(hugofs.Source(), f.Base, walker)
|
||||
if f.fs == nil {
|
||||
panic("Must have a fs")
|
||||
}
|
||||
err := helpers.SymbolicWalk(f.fs.Source, f.Base, walker)
|
||||
|
||||
if err != nil {
|
||||
jww.ERROR.Println(err)
|
||||
@@ -119,7 +128,7 @@ func (f *Filesystem) shouldRead(filePath string, fi os.FileInfo) (bool, error) {
|
||||
jww.ERROR.Printf("Cannot read symbolic link '%s', error was: %s", filePath, err)
|
||||
return false, nil
|
||||
}
|
||||
linkfi, err := hugofs.Source().Stat(link)
|
||||
linkfi, err := f.fs.Source.Stat(link)
|
||||
if err != nil {
|
||||
jww.ERROR.Printf("Cannot stat '%s', error was: %s", link, err)
|
||||
return false, nil
|
||||
|
@@ -19,10 +19,12 @@ import (
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/spf13/hugo/hugofs"
|
||||
)
|
||||
|
||||
func TestEmptySourceFilesystem(t *testing.T) {
|
||||
src := &Filesystem{Base: "Empty"}
|
||||
src := NewFilesystem(hugofs.NewMem(), "Empty")
|
||||
if len(src.Files()) != 0 {
|
||||
t.Errorf("new filesystem should contain 0 files.")
|
||||
}
|
||||
@@ -37,13 +39,12 @@ type TestPath struct {
|
||||
}
|
||||
|
||||
func TestAddFile(t *testing.T) {
|
||||
fs := hugofs.NewMem()
|
||||
tests := platformPaths
|
||||
for _, test := range tests {
|
||||
base := platformBase
|
||||
srcDefault := new(Filesystem)
|
||||
srcWithBase := &Filesystem{
|
||||
Base: base,
|
||||
}
|
||||
srcDefault := NewFilesystem(fs, "")
|
||||
srcWithBase := NewFilesystem(fs, base)
|
||||
|
||||
for _, src := range []*Filesystem{srcDefault, srcWithBase} {
|
||||
|
||||
@@ -99,8 +100,10 @@ func TestUnicodeNorm(t *testing.T) {
|
||||
{NFC: "é", NFD: "\x65\xcc\x81"},
|
||||
}
|
||||
|
||||
fs := hugofs.NewMem()
|
||||
|
||||
for _, path := range paths {
|
||||
src := new(Filesystem)
|
||||
src := NewFilesystem(fs, "")
|
||||
_ = src.add(path.NFD, strings.NewReader(""))
|
||||
f := src.Files()[0]
|
||||
if f.BaseFileName() != path.NFC {
|
||||
|
Reference in New Issue
Block a user