middleman/command/command.go
2025-04-08 09:03:00 +02:00

35 lines
871 B
Go

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
}