github.com/bingoohuang/pkger@v0.0.0-20210127185155-a71b9df4c4c7/cmd/pkger/main.go (about) 1 package main 2 3 import ( 4 "log" 5 "os" 6 "os/exec" 7 8 "github.com/bingoohuang/pkger/cmd/pkger/cmds" 9 ) 10 11 func main() { 12 clean := func() { 13 c := exec.Command("go", "mod", "tidy") 14 c.Stdout = os.Stdout 15 c.Stderr = os.Stderr 16 c.Stdin = os.Stdin 17 c.Run() 18 } 19 defer clean() 20 21 defer func() { 22 if err := recover(); err != nil { 23 clean() 24 log.Fatal(err) 25 } 26 }() 27 28 if err := run(); err != nil { 29 clean() 30 log.Fatal(err) 31 } 32 } 33 34 func run() error { 35 root, err := cmds.New() 36 if err != nil { 37 return err 38 } 39 40 return root.Route(os.Args[1:]) 41 } 42 43 // does not compute