package main

import (
	"github.com/rs/zerolog/log"
	"gopkg.in/yaml.v2"
	"http-server-status/internal/pkg/checks"
	"io/ioutil"
	"os"
)

var c Config

type Config struct {
	HTTP struct{
		Listen string `yaml:"listen"`
	} `yaml:"http"`
	Auth struct{
		Enabled bool `yaml:"enabled"`
		Username string `yaml:"username"`
		Password string `yaml:"password"`
	} `yaml:"auth"`
	Checks struct{
		HDD checks.HDDConfig `yaml:"hdd"`
		Load checks.LoadConfig `yaml:"load"`
		Memory checks.MemoryConfig `yaml:"memory"`
		Systemd checks.SystemdConf `yaml:"systemd"`
		Version checks.VersionConfig `yaml:"version"`
	} `yaml:"checks"`
}

func readConfig()  {
	filename := "/etc/http-server-status/config.yml"
	if len(os.Args) > 1 {
		filename = os.Args[1]
	}

	log.Debug().Str("filename", filename).Msg("Load Config")
	yamlFile, err := ioutil.ReadFile(filename)
	if err != nil {
		log.Fatal().Err(err).Msg("Cant get config file")
	}

	err = yaml.Unmarshal(yamlFile, &c)
	if err != nil {
		log.Fatal().Err(err).Msg("Cant parse yaml file")
	}

	c.Checks.Version.Version = version
}