~xenrox/faceit_checker

7ddb4ea0466a9b8324bd0216403e4d407119cb04 — Thorben Günther 9 months ago b63fc67
Read settings from config file

There are more and more settings available. Parsing them only from
flags or environment variables would be too cumbersome.
3 files changed, 16 insertions(+), 11 deletions(-)

M faceit.go
M go.mod
M go.sum
M faceit.go => faceit.go +10 -11
@@ 108,22 108,21 @@ type faceitChecker struct {
}

func main() {
	var logLevel string
	flag.StringVar(&logLevel, "log-level", "info", "logging level")
	var port int
	flag.IntVar(&port, "port", 8080, "port")
	var configPath string
	flag.StringVar(&configPath, "config", "/etc/faceit_checker/config.scfg", "config file path")
	flag.Parse()

	logger, err := logging.New(logLevel, "text", os.Stderr)
	cfg, err := readConfig(configPath)
	if err != nil {
		slog.Error("Failed to create logger",
		slog.Error("Failed to read config",
			slog.String("error", err.Error()))
		os.Exit(1)
	}

	bearerToken := os.Getenv("FACEIT_BEARER")
	if bearerToken == "" {
		logger.Error("unset FACEIT_BEARER")
	logger, err := logging.New(cfg.logLevel, cfg.logFormat, os.Stderr)
	if err != nil {
		slog.Error("Failed to create logger",
			slog.String("error", err.Error()))
		os.Exit(1)
	}



@@ 144,7 143,7 @@ func main() {
	transport := http.Transport{TLSNextProto: make(map[string]func(authority string, c *tls.Conn) http.RoundTripper)}
	client := &http.Client{Timeout: time.Second * 3, Transport: &transport}

	fc := &faceitChecker{logger: logger, bearerToken: bearerToken,
	fc := &faceitChecker{logger: logger, bearerToken: cfg.faceitBearer,
		templates: tmpls, client: client}

	r := http.NewServeMux()


@@ 156,7 155,7 @@ func main() {

	srv := &http.Server{
		Handler:      r,
		Addr:         fmt.Sprintf(":%d", port),
		Addr:         cfg.httpAddress,
		WriteTimeout: 60 * time.Second,
		ReadTimeout:  60 * time.Second,
	}

M go.mod => go.mod +2 -0
@@ 3,3 3,5 @@ module faceit_go
go 1.21.0

require git.xenrox.net/~xenrox/go-utils v0.0.0-20230813142628-a8bdc9211a98

require git.sr.ht/~emersion/go-scfg v0.0.0-20230601130942-e042ab15616e

M go.sum => go.sum +4 -0
@@ 1,2 1,6 @@
git.sr.ht/~emersion/go-scfg v0.0.0-20230601130942-e042ab15616e h1:42zyo0ZFxHGkysM1B9EM7PnQNO0TEzPm+bw/2Zontyg=
git.sr.ht/~emersion/go-scfg v0.0.0-20230601130942-e042ab15616e/go.mod h1:ybgvEJTIx5XbaspSviB3KNa6OdPmAZqDoSud7z8fFlw=
git.xenrox.net/~xenrox/go-utils v0.0.0-20230813142628-a8bdc9211a98 h1:c6B8yMLiPWj8Fqp3AeLBB86gKhdz2hfgAupaNpmMRMo=
git.xenrox.net/~xenrox/go-utils v0.0.0-20230813142628-a8bdc9211a98/go.mod h1:BM4sMPD0fqFB6eG1T/7rGgEUiqZsMpHvq4PGE861Sfk=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=