feat: working state syncer

This commit is contained in:
2025-01-02 12:05:09 +03:00
parent f87acbf98e
commit 4f9a95dfeb
10 changed files with 557 additions and 0 deletions

53
internal/util/init.go Normal file
View File

@@ -0,0 +1,53 @@
package util
import (
"log/slog"
"os"
"strings"
"github.com/kamikazechaser/common/logg"
"github.com/knadh/koanf/parsers/toml"
"github.com/knadh/koanf/providers/env"
"github.com/knadh/koanf/providers/file"
"github.com/knadh/koanf/v2"
)
func InitLogger() *slog.Logger {
loggOpts := logg.LoggOpts{
FormatType: logg.Logfmt,
LogLevel: slog.LevelInfo,
}
if os.Getenv("DEBUG") != "" {
loggOpts.LogLevel = slog.LevelDebug
}
if os.Getenv("DEV") != "" {
loggOpts.LogLevel = slog.LevelDebug
loggOpts.FormatType = logg.Human
}
return logg.NewLogg(loggOpts)
}
func InitConfig(lo *slog.Logger, confFilePath string) *koanf.Koanf {
var (
ko = koanf.New(".")
)
confFile := file.Provider(confFilePath)
if err := ko.Load(confFile, toml.Parser()); err != nil {
lo.Error("could not parse configuration file", "error", err)
os.Exit(1)
}
if err := ko.Load(env.Provider("SYNC_", ".", func(s string) string {
return strings.ReplaceAll(strings.ToLower(
strings.TrimPrefix(s, "SYNC_")), "__", ".")
}), nil); err != nil {
lo.Error("could not override config from env vars", "error", err)
os.Exit(1)
}
return ko
}