feat: config file

This commit is contained in:
2024-01-20 02:02:43 -06:00
parent 8654ded7a0
commit e6b92caecb
4 changed files with 385 additions and 2 deletions

View File

@@ -1,7 +1,13 @@
package main
import (
"strings"
"git.brettb.xyz/goinv/client/internal/app"
"git.brettb.xyz/goinv/client/internal/config"
"github.com/knadh/koanf/parsers/json"
"github.com/knadh/koanf/providers/env"
"github.com/knadh/koanf/providers/file"
"go.uber.org/zap"
)
@@ -9,7 +15,21 @@ func main() {
logger, _ := zap.NewProduction()
defer logger.Sync()
a := app.NewApp("goinv", "0.1.0", "http://localhost:3001", logger) // TODO: CONFIGURATION
config.LoadConfig(file.Provider("config.json"), json.Parser())
config.LoadConfig(env.Provider("GOINV_", ".", func(s string) string {
return strings.Replace(strings.ToLower(
strings.TrimPrefix(s, "GOINV")), "_", ".", -1,
)
}), nil)
var cfg config.Config
err := config.Unmarshal(&cfg)
if err != nil {
logger.Panic("could not load config", zap.Error(err))
}
a := app.NewApp("goinv", "0.1.1", cfg.API.URL, logger)
if err := a.Run(); err != nil {
logger.Panic("application errored", zap.Error(err))