pink_fox/pink_fox_app/internal/app/config/config.go
Michael Makarochkin f6521b9332 Обновлена среда разработки и добавлен новый функционал в сервер
- Улучшена среда разработки, поправлены косяки старта дебагера

- Добавлен логер в приложение

- Добавлен cli framework
2025-02-28 02:47:17 +03:00

42 lines
945 B
Go

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(config *Config, defaultPort int) *Config {
if config.Port == 0 {
config.Port = defaultPort
}
return config
}