package command import ( "context" "gitea.illuad.fr/adrien/middleman/flag" "github.com/rs/zerolog" "github.com/rs/zerolog/log" "github.com/urfave/cli/v3" "os" "time" ) const EnvVarPrefix = "MIDDLEMAN" // before is executed before any subcommands are run. func before(ctx context.Context, command *cli.Command) (context.Context, error) { if err := ctx.Err(); err != nil { return nil, err } const humanFormatKeyword = "hf" if command.String(flag.LogFormatFlagName) == humanFormatKeyword { log.Logger = zerolog.New(zerolog.ConsoleWriter{ Out: os.Stdout, TimeFormat: time.RFC3339, }).With().Timestamp().Logger() } logLevel := command.String(flag.LogLevelFlagName) level, err := zerolog.ParseLevel(logLevel) if err != nil { log.Err(flag.ErrInvalidLogLevel{LogLevel: logLevel}).Send() } zerolog.SetGlobalLevel(level) return ctx, nil }