master
go 38 lines 800 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package filecheck
4
5 import (
6 "errors"
7
8 "github.com/netdata/netdata/go/plugins/pkg/matcher"
9 )
10
11 func (c *Collector) validateConfig() error {
12 if len(c.Files.Include) == 0 && len(c.Dirs.Include) == 0 {
13 return errors.New("both 'files->include' and 'dirs->include' are empty")
14 }
15 return nil
16 }
17
18 func (c *Collector) initFilesFilter() (matcher.Matcher, error) {
19 return newFilter(c.Files.Exclude)
20 }
21
22 func (c *Collector) initDirsFilter() (matcher.Matcher, error) {
23 return newFilter(c.Dirs.Exclude)
24 }
25
26 func newFilter(patterns []string) (matcher.Matcher, error) {
27 filter := matcher.FALSE()
28
29 for _, s := range patterns {
30 m, err := matcher.NewGlobMatcher(s)
31 if err != nil {
32 return nil, err
33 }
34 filter = matcher.Or(filter, m)
35 }
36
37 return filter, nil
38 }