hugofs: Fix glob case-sensitivity bug

On Linux, `hugofs.Glob` does not hit any directories which includes
uppercase letters. (This does not happen on macOS.)

Since `resources.GetMatch/Match` uses `Glob`,

```
{{ resources.GetMatch "Foo/bar.css" }}
```

this does not match `assets/Foo/bar.css` .

On the other hand, you can get it with

```
{{ resources.Get "Foo/bar.css" }}
```
This commit is contained in:
satotake
2022-09-21 15:01:54 +00:00
committed by Bjørn Erik Pedersen
parent f3560aa0e1
commit 281554ee97
4 changed files with 54 additions and 23 deletions

View File

@@ -26,14 +26,14 @@ import (
// Glob walks the fs and passes all matches to the handle func.
// The handle func can return true to signal a stop.
func Glob(fs afero.Fs, pattern string, handle func(fi FileMetaInfo) (bool, error)) error {
pattern = glob.NormalizePath(pattern)
pattern = glob.NormalizePathCaseSensitive(pattern)
if pattern == "" {
return nil
}
g, err := glob.GetGlob(pattern)
g, err := glob.GetFilenamesGlob(pattern)
if err != nil {
return nil
return err
}
hasSuperAsterisk := strings.Contains(pattern, "**")