-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
44 lines (41 loc) · 947 Bytes
/
main.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
package main
import "flag"
import "fmt"
import "os"
import "path/filepath"
var show_verbs bool = false
var verbose bool = false
func init() {
flag.BoolVar(&show_verbs, "show_verbs", false, "Just list supported defimpl verbs and exit.")
flag.BoolVar(&verbose, "verbose", false, "Verbose output.")
}
func main() {
flag.Parse()
if show_verbs {
for _, v := range VerbDefinitions {
fmt.Fprintf(os.Stderr, "%s\t %s\n",
v.Tag(), v.Description())
}
return
}
afp, err := filepath.Abs(".")
if err != nil {
fmt.Fprintf(os.Stderr, "Can't determine working directory: %s\n", err)
return
}
ctx, err := NewContext(filepath.Clean(afp))
if err != nil {
fmt.Fprintf(os.Stderr, "defimpl: %s\n", err)
return
}
if debug_dump {
ctx.debug_dump()
}
ctx.DoInheritance()
for _, f := range ctx.files {
fmt.Printf("file %s\n", f.InputFilePath)
if err := f.Write(ctx); err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
}
}
}