package cmd import ( "fmt" "os" "time" "github.com/orus-io/go-flags" "github.com/rs/zerolog" beaver "orus.io/cloudcrane/beaver/lib" ) var ( Version = beaver.GetVersion() ) var ( output = zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.RFC3339} Logger = zerolog.New(output).With().Timestamp().Logger() parser = flags.NewNamedParser("beaver", flags.HelpFlag|flags.PassDoubleDash) ) func Run() int { if _, err := parser.Parse(); err != nil { code := 1 if fe, ok := err.(*flags.Error); ok { if fe.Type == flags.ErrHelp { code = 0 // this error actually contains a help message for the user // so we print it on the console fmt.Println(err) } else { Logger.Error().Msg(err.Error()) } } else { Logger.Err(err).Msg("") } return code } return 0 }