~xenrox/faceit_checker

61e2759bec4c3dfe64ce74d936918b9cfb90c9a2 — Thorben Günther 3 months ago de9603d
Add missing config code

Oooops.
1 files changed, 58 insertions(+), 0 deletions(-)

A config.go
A config.go => config.go +58 -0
@@ 0,0 1,58 @@
package main

import (
	"fmt"

	"git.sr.ht/~emersion/go-scfg"
)

type config struct {
	httpAddress  string
	faceitBearer string
	logLevel     string
	logFormat    string
}

func readConfig(path string) (*config, error) {
	cfg, err := scfg.Load(path)
	if err != nil {
		return nil, err
	}

	config := new(config)
	// Set default values
	config.httpAddress = ":8080"
	config.logLevel = "info"
	config.logFormat = "text"

	d := cfg.Get("log-level")
	if d != nil {
		if err := d.ParseParams(&config.logLevel); err != nil {
			return nil, err
		}
	}

	d = cfg.Get("log-format")
	if d != nil {
		if err := d.ParseParams(&config.logFormat); err != nil {
			return nil, err
		}
	}

	d = cfg.Get("http-address")
	if d != nil {
		if err := d.ParseParams(&config.httpAddress); err != nil {
			return nil, err
		}
	}

	d = cfg.Get("faceit-bearer")
	if d == nil {
		return nil, fmt.Errorf("%q missing", "faceit-bearer")
	}
	if err := d.ParseParams(&config.faceitBearer); err != nil {
		return nil, err
	}

	return config, nil
}