-
Notifications
You must be signed in to change notification settings - Fork 3
/
findGoDirs.go
61 lines (50 loc) · 1.18 KB
/
findGoDirs.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
package main
import "github.com/nickwells/verbose.mod/verbose"
const (
printAct = "print"
buildAct = "build"
installAct = "install"
testAct = "test"
generateAct = "generate"
contentAct = "content"
filenameAct = "filename"
)
type (
actionFunc func(*Prog, string)
dirToContentMap map[string]contentMap
)
// Prog holds the parameters and current status of the program
type Prog struct {
baseDirs []string
skipDirs []string
pkgNames []string
filesWanted []string
filesMissing []string
contentChecks checkMap
dirContent dirToContentMap
noAction bool
actions map[string]bool
actionFuncs map[string]actionFunc
generateArgs []string
installArgs []string
buildArgs []string
testArgs []string
dbgStack *verbose.Stack
}
func NewProg() *Prog {
return &Prog{
contentChecks: make(checkMap),
dirContent: make(dirToContentMap),
actions: make(map[string]bool),
actionFuncs: map[string]actionFunc{
printAct: doPrint,
buildAct: doBuild,
installAct: doInstall,
testAct: doTest,
generateAct: doGenerate,
contentAct: doContent,
filenameAct: doFilenames,
},
dbgStack: &verbose.Stack{},
}
}