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 }