diff --git a/search/search.go b/search/search.go index d51d2524..7f3de2be 100644 --- a/search/search.go +++ b/search/search.go @@ -29,8 +29,6 @@ func Search(fs afero.Fs, scope, query string, checker rules.Checker, found func( originalPath = strings.TrimPrefix(originalPath, "/") originalPath = "/" + originalPath path := originalPath - originalPath = strings.TrimPrefix(originalPath, scope) - originalPath = strings.TrimPrefix(originalPath, "/") if path == scope { return nil @@ -45,21 +43,32 @@ func Search(fs afero.Fs, scope, query string, checker rules.Checker, found func( } if len(search.Conditions) > 0 { + match := false + for _, t := range search.Conditions { if t(path) { - return found(originalPath, f) + match = true + break } } - return nil + if !match { + return nil + } } if len(search.Terms) > 0 { for _, term := range search.Terms { if strings.Contains(path, term) { + originalPath = strings.TrimPrefix(originalPath, scope) + originalPath = strings.TrimPrefix(originalPath, "/") return found(originalPath, f) } } + } else { + originalPath = strings.TrimPrefix(originalPath, scope) + originalPath = strings.TrimPrefix(originalPath, "/") + return found(originalPath, f) } return nil