package main import ( "gopkg.in/yaml.v3" "os" ) type ServerAuthConfig struct { Username string `yaml:"username"` Password string `yaml:"password"` } type ServerConfig struct { Listen string `yaml:"listen"` Auth ServerAuthConfig `yaml:"auth"` } type RemoteConfigItem struct { Type string `yaml:"type"` Label string `yaml:"label"` Items []map[string]string `yaml:"items"` } type Config struct { Server ServerConfig `yaml:"server"` Remote map[string][]RemoteConfigItem `yaml:"remote"` } func createConfigFromFile(file string) (Config, error) { data, err := os.ReadFile(file) value := Config{} if err != nil { return value, err } err = yaml.Unmarshal(data, &value) if err != nil { return value, err } return value, nil }