You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

41 lines
934 B

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"
)
var envPrefix = "GOINV_CLI_"
func main() {
logger, err := zap.NewProduction()
defer logger.Sync()
logger.Info("loading configuration")
config.LoadConfig(file.Provider("config.json"), json.Parser())
config.LoadConfig(env.Provider(envPrefix, ".", func(s string) string {
return strings.Replace(strings.ToLower(
strings.TrimPrefix(s, envPrefix)), "_", ".", -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))
}
}