Add cmd for generating code from the new models
Some checks are pending
/ test (push) Waiting to run
Some checks are pending
/ test (push) Waiting to run
This commit is contained in:
parent
67b507f4bd
commit
bf5180559f
9 changed files with 401 additions and 132 deletions
48
shared/flags.go
Normal file
48
shared/flags.go
Normal file
|
@ -0,0 +1,48 @@
|
|||
package shared
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
var (
|
||||
FlagConfigFile *string = flag.String(
|
||||
"config",
|
||||
"config.toml",
|
||||
"Location of the config file",
|
||||
)
|
||||
FlagConfigOnly *bool = flag.Bool(
|
||||
"validate-config",
|
||||
false,
|
||||
"If set, the server will only validate the config (or write the default one) and then quit",
|
||||
)
|
||||
)
|
||||
|
||||
func flagUsage() {
|
||||
executable, err := os.Executable()
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("Failed to get own path")
|
||||
}
|
||||
fmt.Fprintf(os.Stderr, "Usage of %s:\n", executable)
|
||||
fmt.Fprintln(os.Stderr, "\t-config string")
|
||||
fmt.Fprintln(os.Stderr, "\t\tLocation of the config file (default: \"config.toml\")")
|
||||
fmt.Fprintln(os.Stderr, "\t-loglevel string")
|
||||
fmt.Fprintln(
|
||||
os.Stderr,
|
||||
"\t\tSet the logging level. Options are: Trace, Debug, Info, Warning, Error and Fatal. Case insensitive (default: \"Info\")",
|
||||
)
|
||||
fmt.Fprintln(os.Stderr, "\t-validate-config")
|
||||
fmt.Fprintln(
|
||||
os.Stderr,
|
||||
"\t\tIf set, the server will only validate the config (or write the default one) and then quit",
|
||||
)
|
||||
fmt.Fprintln(os.Stderr, "\t-jsonlogs")
|
||||
fmt.Fprintln(os.Stderr, "\t\tIf set, writes logging messages as json objects instead")
|
||||
}
|
||||
|
||||
func init() {
|
||||
flag.Usage = flagUsage
|
||||
}
|
64
shared/zerologGormAdapter.go
Normal file
64
shared/zerologGormAdapter.go
Normal file
|
@ -0,0 +1,64 @@
|
|||
package shared
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
type ZerologGormAdapter struct {
|
||||
logger zerolog.Logger
|
||||
}
|
||||
|
||||
func NewGormLogger(zerologger zerolog.Logger) *ZerologGormAdapter {
|
||||
return &ZerologGormAdapter{zerologger}
|
||||
}
|
||||
|
||||
func (g *ZerologGormAdapter) LogMode(newLevel logger.LogLevel) logger.Interface {
|
||||
switch newLevel {
|
||||
case logger.Error:
|
||||
g.logger = g.logger.Level(zerolog.ErrorLevel)
|
||||
case logger.Warn:
|
||||
g.logger = g.logger.Level(zerolog.WarnLevel)
|
||||
case logger.Info:
|
||||
g.logger = g.logger.Level(zerolog.InfoLevel)
|
||||
case logger.Silent:
|
||||
g.logger = g.logger.Level(zerolog.Disabled)
|
||||
}
|
||||
return g
|
||||
}
|
||||
func (g *ZerologGormAdapter) Info(ctx context.Context, format string, args ...any) {
|
||||
g.logger.Info().Ctx(ctx).Msgf(format, args...)
|
||||
}
|
||||
func (g *ZerologGormAdapter) Warn(ctx context.Context, format string, args ...any) {
|
||||
g.logger.Warn().Ctx(ctx).Msgf(format, args...)
|
||||
}
|
||||
func (g *ZerologGormAdapter) Error(ctx context.Context, format string, args ...any) {
|
||||
g.logger.Error().Ctx(ctx).Msgf(format, args...)
|
||||
}
|
||||
|
||||
func (g *ZerologGormAdapter) Trace(
|
||||
ctx context.Context,
|
||||
begin time.Time,
|
||||
fc func() (sql string, rowsAffected int64),
|
||||
err error,
|
||||
) {
|
||||
sql, rowsAffected := fc()
|
||||
g.logger.Trace().
|
||||
Ctx(ctx).
|
||||
Time("gorm-begin", begin).
|
||||
Err(err).
|
||||
Str("gorm-query", sql).
|
||||
Int64("gorm-rows-affected", rowsAffected).
|
||||
Send()
|
||||
}
|
||||
|
||||
func (g *ZerologGormAdapter) OverwriteLoggingLevel(new zerolog.Level) {
|
||||
g.logger = g.logger.Level(new)
|
||||
}
|
||||
|
||||
func (g *ZerologGormAdapter) OverwriteLogger(new zerolog.Logger) {
|
||||
g.logger = new
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue