package main import ( "fmt" "os" "git.cheetah.cat/cheetah/moto-flash-data/commands" "github.com/jessevdk/go-flags" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) func main() { zerolog.SetGlobalLevel(zerolog.DebugLevel) consoleWriter := zerolog.ConsoleWriter{Out: os.Stdout} consoleWriter.PartsExclude = []string{ zerolog.TimestampFieldName, } log.Logger = log.Output(consoleWriter) // parser := flags.NewParser(&commands.MotoCLI, flags.HelpFlag|flags.PassDoubleDash) parser.NamespaceDelimiter = "-" helpParser := flags.NewParser(&commands.MotoCLI, flags.HelpFlag) helpParser.NamespaceDelimiter = "-" _, err := parser.Parse() handleError(helpParser, err) } func handleError(helpParser *flags.Parser, err error) { if err != nil { if err == commands.ErrShowHelpMessage { showHelp(helpParser) } else if flagsErr, ok := err.(*flags.Error); ok && flagsErr.Type == flags.ErrCommandRequired { showHelp(helpParser) } else if flagsErr, ok := err.(*flags.Error); ok && flagsErr.Type == flags.ErrHelp { fmt.Println(err) os.Exit(0) } else { fmt.Printf("error: %s\n", err) } os.Exit(1) } } func showHelp(helpParser *flags.Parser) { helpParser.ParseArgs([]string{"-h"}) helpParser.WriteHelp(os.Stdout) os.Exit(0) }