/
finder.go
66 lines (47 loc) · 1.3 KB
/
finder.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package finder
import (
"io/ioutil"
"path/filepath"
"gopkg.in/yaml.v2"
"github.com/blackarrowsec/fozar/internal/log"
)
type config struct {
Rules []string `yaml:"rules"`
}
type fileExceptions struct {
Fexceptions []string `yaml:"avoid"`
}
func ParseRules(rules_file string) []string{
filename, err := filepath.Abs(rules_file)
handleError(err)
log.DebugPrint("Opening "+filename)
yamlFile, err := ioutil.ReadFile(filename)
handleError(err)
var rules config
err = yaml.Unmarshal(yamlFile, &rules)
handleError(err)
for _, rule := range rules.Rules {
log.DebugPrint(" +found rule: "+rule)
}
return rules.Rules
}
func ParseFileExceptions(rules_file string) []string{
filename, err := filepath.Abs(rules_file)
handleError(err)
log.DebugPrint("Opening "+filename)
yamlFile, err := ioutil.ReadFile(filename)
handleError(err)
var rules fileExceptions
err = yaml.Unmarshal(yamlFile, &rules)
handleError(err)
for _, rule := range rules.Fexceptions {
log.DebugPrint(" +found rule: "+rule)
}
return rules.Fexceptions
}
func handleError(err error){
if err != nil {
log.Fatal(err)
return
}
}