mirror of
https://github.com/gohugoio/hugo.git
synced 2025-02-16 19:21:33 +00:00
Add some tests for IgnoreFiles
And log error on invalid regexp. See #1189
This commit is contained in:
parent
beaa1b3aad
commit
beeae6ab69
3 changed files with 33 additions and 18 deletions
|
@ -198,12 +198,12 @@ func NewDistinctErrorLogger() *DistinctErrorLogger {
|
|||
}
|
||||
|
||||
// Avoid spamming the logs with errors
|
||||
var deprecatedLogger = NewDistinctErrorLogger()
|
||||
var DistinctErrorLog = NewDistinctErrorLogger()
|
||||
|
||||
// Deprecated logs ERROR logs about a deprecation, but only once for a given set of arguments' values.
|
||||
func Deprecated(object, item, alternative string) {
|
||||
// deprecatedLogger.Printf("%s's %s is deprecated and will be removed in Hugo %s. Use %s instead.", object, item, NextHugoReleaseVersion(), alternative)
|
||||
deprecatedLogger.Printf("%s's %s is deprecated and will be removed VERY SOON. Use %s instead.", object, item, alternative)
|
||||
DistinctErrorLog.Printf("%s's %s is deprecated and will be removed VERY SOON. Use %s instead.", object, item, alternative)
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,29 +1,41 @@
|
|||
package source
|
||||
|
||||
import (
|
||||
"github.com/spf13/viper"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestIgnoreDotFilesAndDirectories(t *testing.T) {
|
||||
viper.Reset()
|
||||
defer viper.Reset()
|
||||
|
||||
tests := []struct {
|
||||
path string
|
||||
ignore bool
|
||||
path string
|
||||
ignore bool
|
||||
ignoreFilesRegexpes interface{}
|
||||
}{
|
||||
{".foobar/", true},
|
||||
{"foobar/.barfoo/", true},
|
||||
{"barfoo.md", false},
|
||||
{"foobar/barfoo.md", false},
|
||||
{"foobar/.barfoo.md", true},
|
||||
{".barfoo.md", true},
|
||||
{".md", true},
|
||||
{"", true},
|
||||
{"foobar/barfoo.md~", true},
|
||||
{".foobar/barfoo.md~", true},
|
||||
{"foobar~/barfoo.md", false},
|
||||
{"foobar/bar~foo.md", false},
|
||||
{".foobar/", true, nil},
|
||||
{"foobar/.barfoo/", true, nil},
|
||||
{"barfoo.md", false, nil},
|
||||
{"foobar/barfoo.md", false, nil},
|
||||
{"foobar/.barfoo.md", true, nil},
|
||||
{".barfoo.md", true, nil},
|
||||
{".md", true, nil},
|
||||
{"", true, nil},
|
||||
{"foobar/barfoo.md~", true, nil},
|
||||
{".foobar/barfoo.md~", true, nil},
|
||||
{"foobar~/barfoo.md", false, nil},
|
||||
{"foobar/bar~foo.md", false, nil},
|
||||
{"foobar/foo.md", true, []string{"\\.md$", "\\.boo$"}},
|
||||
{"foobar/foo.html", false, []string{"\\.md$", "\\.boo$"}},
|
||||
{"foobar/foo.md", true, []string{"^foo"}},
|
||||
{"foobar/foo.md", false, []string{"*", "\\.md$", "\\.boo$"}},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
||||
viper.Set("ignoreFiles", test.ignoreFilesRegexpes)
|
||||
|
||||
if ignored := isNonProcessablePath(test.path); test.ignore != ignored {
|
||||
t.Errorf("File not ignored. Expected: %t, got: %t", test.ignore, ignored)
|
||||
}
|
||||
|
|
|
@ -151,8 +151,11 @@ func isNonProcessablePath(filePath string) bool {
|
|||
ignoreFiles := viper.GetStringSlice("IgnoreFiles")
|
||||
if len(ignoreFiles) > 0 {
|
||||
for _, ignorePattern := range ignoreFiles {
|
||||
match, _ := regexp.MatchString(ignorePattern, filePath)
|
||||
if match {
|
||||
match, err := regexp.MatchString(ignorePattern, filePath)
|
||||
if err != nil {
|
||||
helpers.DistinctErrorLog.Printf("Invalid regexp '%s' in ignoreFiles: %s", ignorePattern, err)
|
||||
return false
|
||||
} else if match {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue