35 lines
871 B
Go
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
|
|
}
|