github.com/taylorchu/generic@v0.0.0-20171113184323-cd81575befa2/cmd/generic/main.go (about)

     1  package main
     2  
     3  import (
     4  	"go/build"
     5  	"log"
     6  	"os"
     7  	"os/exec"
     8  )
     9  
    10  func main() {
    11  	log.SetFlags(0)
    12  
    13  	if len(os.Args) < 3 {
    14  		log.Fatalln("generic [SRCPATH] [DEST] [TypeXXX->OtherType]...")
    15  	}
    16  
    17  	if os.Args[1] == "" {
    18  		log.Fatalln("SRCPATH cannot be empty")
    19  	}
    20  
    21  	if os.Args[2] == "" {
    22  		log.Fatalln("DEST cannot be empty")
    23  	}
    24  
    25  	c, err := NewConfig(os.Args[1], os.Args[2], os.Args[3:]...)
    26  	if err != nil {
    27  		log.Fatalln(err)
    28  	}
    29  
    30  	if _, err := build.Import(os.Args[1], ".", build.FindOnly); err != nil {
    31  		cmd := exec.Command("go", "get", "-u", os.Args[1])
    32  		cmd.Stderr = os.Stderr
    33  		err := cmd.Run()
    34  		if err != nil {
    35  			log.Fatalln(err)
    36  		}
    37  	}
    38  
    39  	err = c.RewritePackage()
    40  	if err != nil {
    41  		log.Fatalln(err)
    42  	}
    43  }