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  }