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"
|
|
)
|
|
|
|
func main() {
|
|
logger, _ := zap.NewProduction()
|
|
defer logger.Sync()
|
|
|
|
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))
|
|
}
|
|
}
|