func main() { defer func() { if r := recover(); r != nil { fatal, ok := r.(*cmd.FatalError) if !ok { panic(r) } fmt.Println("ERROR:", fatal.Message) os.Exit(fatal.ReturnCode) } }() command := cmd.RootCommand() flags, args, err := command.ParseFlags(os.Args[1:]) if err != nil { cmd.Fatal(err) } err = cmd.InitContext(flags) if err != nil { cmd.Fatal(err) } defer cmd.ShutdownContext() err = command.Dispatch(args) if err != nil { cmd.Fatal(err) } }
func main() { defer func() { os.Exit(returnCode) }() command := cmd.RootCommand() err := command.Flag.Parse(os.Args[1:]) if err != nil { fatal(err) return } err = loadConfig(command) if err != nil { fatal(err) return } if returnCode != 0 { return } err = cmd.InitContext(command) if err != nil { fatal(err) return } defer cmd.ShutdownContext() err = command.Dispatch(command.Flag.Args()) if err != nil { fatal(err) return } }
func main() { command := cmd.RootCommand() err := command.Flag.Parse(os.Args[1:]) if err != nil { fatal(err) } err = loadConfig(command) if err != nil { fatal(err) } err = cmd.InitContext(command) if err != nil { fatal(err) } defer cmd.ShutdownContext() err = command.Dispatch(command.Flag.Args()) if err != nil { fatal(err) } }