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 }