-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.go
37 lines (28 loc) · 803 Bytes
/
config.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
package deferror
import (
"log"
"os"
"text/template"
"golang.org/x/tools/go/analysis"
"golang.org/x/tools/go/analysis/passes/buildssa"
"golang.org/x/tools/go/analysis/passes/inspect"
"golang.org/x/tools/go/ast/inspector"
)
var tmpFile = "./deferror.tmpl"
func configInit(pass *analysis.Pass) {
a.pass = pass
a.ssa = pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA)
a.inspect = pass.ResultOf[inspect.Analyzer].(*inspector.Inspector)
envDfrr := os.Getenv("DFRR_FILE")
if envDfrr != "" {
tmpFile = envDfrr
}
if _, err := os.Stat(tmpFile); err != nil {
log.Fatalf("template file not provided or not readable %s: %s", tmpFile, err)
}
t, err := template.New("main").Funcs(funcMap).ParseFiles(tmpFile)
if err != nil {
log.Fatalf("template.ParseFiles: %s", err)
}
a.tmpl = t
}