package main import ( "os" "gopkg.in/yaml.v3" ) // Config — структура для чтения YAML-файла type Config struct { ListenAddresses []string `yaml:"listen_addresses"` LogDir string `yaml:"log_dir"` Telegram *ConfigTelegram `yaml:"telegram"` Pachca *ConfigPachca `yaml:"pachca"` Email *ConfigEmail `yaml:"email"` } type ConfigTelegram struct { Token string `yaml:"token"` GroupID int64 `yaml:"group_id"` DisableIPV6 *bool `yaml:"disable_ipv6"` // nil → true } type ConfigPachca struct { WebhookURL string `yaml:"webhook_url"` // входящий вебхук Pachca } type ConfigEmail struct { SMTPAddr string `yaml:"smtp_addr"` Username string `yaml:"username"` Password string `yaml:"password"` From string `yaml:"from"` To []string `yaml:"to"` Subject string `yaml:"subject"` // "" → "HTTP Logger" } // loadConfig читает YAML-конфиг из файла func loadConfig(path string) (*Config, error) { data, err := os.ReadFile(path) if err != nil { return nil, err } var cfg Config if err := yaml.Unmarshal(data, &cfg); err != nil { return nil, err } return &cfg, nil }