github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/gen/cavegen/cavegen.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "os" 7 "sort" 8 9 "github.com/gocaveman/caveman/gen" 10 ) 11 12 func main() { 13 14 args := os.Args[1:] 15 16 g := gen.GetRegistryMapGenerator() 17 18 if len(args) == 0 || g[args[0]] == nil { 19 fmt.Printf("Usage: cavegen [generator] [args...]\n\n") 20 fmt.Printf(" Generators:\n") 21 gnames := make([]string, 0, len(g)) 22 for name := range g { 23 gnames = append(gnames, name) 24 } 25 sort.Strings(gnames) 26 for _, name := range gnames { 27 fmt.Printf(" %s\n", name) 28 } 29 30 // fmt.Printf("\nTo get help on a specific generator: cavegen help [generator]\n\n") 31 os.Exit(1) 32 return 33 } 34 35 // if args[0] == "help" { 36 // panic("help not implemented!") 37 // os.Exit(1) 38 // return 39 // } 40 41 name := args[0] 42 43 gopath := os.Getenv("GOPATH") 44 if gopath == "" { 45 log.Printf("GOPATH not set, cannot continue") 46 os.Exit(1) 47 return 48 } 49 50 wd, err := os.Getwd() 51 if err != nil { 52 log.Fatal(err) 53 } 54 55 s := &gen.Settings{ 56 GOPATH: gopath, 57 WorkDir: wd, 58 } 59 60 err = g.Generate(s, name, args[1:]...) 61 if err != nil { 62 log.Printf("Generate() produced error: %v", err) 63 os.Exit(255) 64 return 65 } 66 67 }