package config import ( "fmt" "gopkg.in/yaml.v3" "os" ) type DB struct { Host string `yaml:"host"` User string `yaml:"user"` Password string `yaml:"password"` Port string `yaml:"port"` Database string `yaml:"database"` } type Config struct { Port int `yaml:"port"` Db DB `yaml:"db"` LogFile string `yaml:"logFile"` } func LoadConfig(defaultConfig string, defaultPort int) (*Config, error) { data, err := os.ReadFile(defaultConfig) if err != nil { return nil, fmt.Errorf("ошибка чтения файла конфига: %s", err) } var config Config err = yaml.Unmarshal(data, &config) if err != nil { return nil, fmt.Errorf("не получилось распарсить конфиг: %s", err) } return setDefaultValue(&config, defaultPort), nil } func setDefaultValue(conf *Config, defaultPort int) *Config { if conf.Port == 0 { conf.Port = defaultPort } if conf.LogFile == "" { conf.LogFile = "/var/log/pink_fox/app.log" } return conf }